Explications Techniques

API JSON CaptchaAI vs API Form : quel format utiliser

CaptchaAI accepte les requêtes aux formats codés par formulaire et JSON. Les deux fonctionnent de manière identique : choisissez en fonction de votre langue et de vos préférences.


Comparaison côte à côte

Codé par formulaire (par défaut)

import requests

resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "json": 1,
})

Type de contenu : application/x-www-form-urlencoded

JSON

import requests

resp = requests.post("https://ocr.captchaai.com/in.php", json={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "json": 1,
})

Type de contenu : application/json


Différences clés

Facteur Codé sous forme JSON
Type de contenu application/x-www-form-urlencoded application/json
Structure des données Paires clé-valeur plates Objets imbriqués possibles
Données binaires Utiliser Multipart pour le téléchargement de fichiers Encodage Base64 dans le champ corps
Prise en charge des baies Limité Indigène
Mot-clé Python data={} json={}
Noeud.js URLSearchParams JSON.stringify()
Lisibilité Simple pour les paramètres plats Mieux pour les données complexes
Compatibilité Fonctionne partout Fonctionne partout

Format de réponse

Ajoutez json=1 pour obtenir des réponses JSON quel que soit le format de la requête :

# Without json=1 — plain text response
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
})
# Response: "OK|12345678"

# With json=1 — JSON response
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "json": 1,
})
# Response: {"status": 1, "request": "12345678"}

Utilisez toujours json=1 pour une analyse plus facile.


Exemples Python

Codé sous forme

import requests

# Submit
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "json": 1,
})
task_id = resp.json()["request"]

# Poll (always GET with query params)
resp = requests.get("https://ocr.captchaai.com/res.php", params={
    "key": "YOUR_API_KEY",
    "action": "get",
    "id": task_id,
    "json": 1,
})

Corps JSON

import requests

# Submit with JSON
resp = requests.post("https://ocr.captchaai.com/in.php", json={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "json": 1,
})
task_id = resp.json()["request"]

# Poll (same as form-encoded — GET with params)
resp = requests.get("https://ocr.captchaai.com/res.php", params={
    "key": "YOUR_API_KEY",
    "action": "get",
    "id": task_id,
    "json": 1,
})

Exemples Node.js

Codé sous forme

const axios = require('axios');
const qs = require('querystring');

// Submit
const resp = await axios.post(
  'https://ocr.captchaai.com/in.php',
  qs.stringify({
    key: 'YOUR_API_KEY',
    method: 'userrecaptcha',
    googlekey: 'SITE_KEY',
    pageurl: 'https://example.com',
    json: 1,
  })
);
const taskId = resp.data.request;

Corps JSON

const axios = require('axios');

// Submit with JSON
const resp = await axios.post(
  'https://ocr.captchaai.com/in.php',
  {
    key: 'YOUR_API_KEY',
    method: 'userrecaptcha',
    googlekey: 'SITE_KEY',
    pageurl: 'https://example.com',
    json: 1,
  }
);
const taskId = resp.data.request;

Image CAPTCHA : Formulaire vs JSON

Pour les CAPTCHA d’image, le format compte davantage :

Formulaire avec téléchargement de fichier (Multipart)

# File upload — form-encoded with multipart
resp = requests.post("https://ocr.captchaai.com/in.php",
    data={
        "key": "YOUR_API_KEY",
        "method": "post",
        "json": 1,
    },
    files={
        "file": open("captcha.png", "rb"),
    },
)

JSON avec Base64

import base64

# Base64 in JSON body
with open("captcha.png", "rb") as f:
    body = base64.b64encode(f.read()).decode()

resp = requests.post("https://ocr.captchaai.com/in.php", json={
    "key": "YOUR_API_KEY",
    "method": "base64",
    "body": body,
    "json": 1,
})

Formulaire avec Base64

# Base64 in form data
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "base64",
    "body": body,
    "json": 1,
})

Quand utiliser lequel

Scénario Recommandé Pourquoi
Scripts simples Codé sous forme Plus simple, moins de dépendances
Intégration de l'API REST JSON Correspond aux modèles d'API typiques
Téléchargements de fichiers Formulaire en plusieurs parties Téléchargement binaire direct
Grandes images base64 Codé sous forme Meilleure gestion des charges utiles volumineuses
TypeScript/modern JS JSON Prise en charge des objets natifs
Intégration du système existant Codé sous forme Compatibilité universelle
Migration depuis 2Captcha Codé sous forme Même format que 2Captcha

Erreurs courantes

Erreur Problème Réparer
Utilisation de json={} mais pas de json: 1 dans les données La réponse est en texte brut Inclure "json": 1 dans les données
Mélanger data= et json= dans les requêtes Python Demande mal formée Utiliser l'un ou l'autre
Oublier l'en-tête Content-Type Le serveur ne peut pas analyser le corps Laissez votre bibliothèque HTTP le définir automatiquement
Envoi du corps JSON au point de terminaison d'interrogation Le sondage utilise les paramètres GET Utilisez toujours GET avec les paramètres de requête pour /res.php

FAQ

Le format affecte-t-il la vitesse ou la précision de la résolution ?

Non. Les deux formats produisent des résultats identiques. Le serveur les traite de la même manière.

Puis-je mélanger des formats dans un même projet ?

Oui. Vous pouvez soumettre avec JSON et interroger avec des paramètres de requête (c'est ainsi que fonctionne toujours l'interrogation). Chaque demande est indépendante.

Quel format est utilisé par l'API compatible 2Captcha ?

L'API 2Captcha d'origine utilise le codage par formulaire. CaptchaAI ajoute le support JSON en plus. Si vous migrez depuis 2Captcha, restez avec le codage par formulaire.


Guides connexes


Choisissez votre format préféré —essayez l'API CaptchaAIaujourd'hui.

Les commentaires sont désactivés pour cet article.