6 Stimmen

Inhaltstyp ändert sich nicht mit CURLOPT_HTTPHEADERS

Ich versuche, POST einige JSON an einen Webdienst mit cURL, mit dem folgenden Code:

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_URL, 'http://index.yolink.com/index/define?o=json&ak=APIKEY');
curl_setopt($ch, CURLOPT_HTTPHEADERS,array('Content-Type: application/json'));

$data = array(
  'ignore-robots' => 'false',
      'language' => 'english',
  'crawl-delay' => '0',
  'depth' => '3',
  'root' => array('url' => 'http://bartleby.com/')
);

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$result=curl_exec($ch);
var_dump($result);

Im Gegenzug erhalte ich Folgendes:

string(282) "HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Access-Control-Allow-Origin: * Inhalt-Typ: text/plain Inhalt-Länge: 120 Datum: Fri, 18 Mar 2011 19:03:23 GMT {"code": "error.indexdefinition.invalid", "message": "Ungültiger Inhalt für /define bereitgestellt. Error:Premature end of file.."}"

Ich fand dieser Blogbeitrag Das scheint damit zusammenzuhängen, denn es sendet anscheinend text/plain auch wenn ich die Option ContentType en CURLOPT_HTTPHEADERS como application/json . Aber das Hinzufügen http_build_query hat nicht geholfen.

Vielen Dank im Voraus für jede Hilfe!

9voto

Ryre Punkte 6018

Ich glaube, es sollte sein HTTPHEADER , nicht HTTPHEADERS .

http://php.net/manual/en/function.curl-setopt.php

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X