2016-07-13 11 views
2

Ich entwickle Code für einen Makler Eigenschaften Zoopla über ihre DatafeedZoopla Sandbox mit curl http-Header Fehler

Ich habe Probleme Hinzufügen eines Anforderungsprofil an den HTTP-Header zu laden, die erforderlich ist

Das einzige Beispiel in der Dokumentation ist dieser Test von linux:

echo '{ "branch_reference" : "test" }' | 
curl --key /path/to/private.pem --cert /path/to/certificate.crt --data @- 
--header "Content-type: application/json; 
profile=http://realtime-listings.webservices.zpg.co.uk/docs/v1.1/schemas/listing/list.json" 
https://realtime-listings-api.webservices.zpg.co.uk/sandbox/v1/listing/list 

ich habe ein Problem mit dem Profil auf die hTTP-Header in cURL Hinzufügen Hier ist mein Code:

$json['branch_reference']="test"; 
$json=json_encode($json); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_SSLKEY,'private.pem'); 
curl_setopt($ch, CURLOPT_SSLCERT,'zpg_realtime_listings_1468337696150754_20160712-20260710.crt'); 
curl_setopt($ch, CURLOPT_URL, "https://realtime-listings-api.webservices.zpg.co.uk/sandbox/v1/listing/list"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', 
    'profile: http://realtime-listings.webservices.zpg.co.uk/docs/v1.1/schemas/listing/list.json' 
)); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $json); 
if(curl_error($ch)){echo "CURL ERROR ".curl_error($ch)."<br>";} 
$result = curl_exec($ch); 
curl_close($ch); 

echo $result; 

Die Antwort, die ich bin von Zoopla bekommen ist:

{ "error_advice" : "The Content-Type header is missing the 'profile' parameter. Please supply 'profile', specifying the schema URL for the method you are calling: /sandbox/v1/listing/list", "error_name" : "missing_profile" } 

Kann anbody raten Sie bitte auf die richtige Art und Weise das Profil der Kopfzeile hinzufügen?

Thanx

Antwort

2

Von ihrem Beispiel sieht es aus wie Sie die gesamte Zeichenfolge als einzelne Content-Type HTTP-Header geben werden sollten, anstatt zwei separate derjenigediejenigedasjenige:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json; profile=http://realtime-listings.webservices.zpg.co.uk/docs/v1.1/schemas/listing/list.json' 
); 
+0

Thanx iainn, die es taten - {"status": "OK", "listings": [], "branch_reference": "test"} - eine Lektion, die man lernt, wenn man genauer hinsieht! – bob