Ich versuche, den folgenden Wert in eine API zu posten, und die Antwort zurück, es funktioniert gut mit Terminal Terminal mit Curl-Befehl, aber nicht auf meine PHP-Datei läuft auf localhost mit MAMP.Convert Terminal cURL nach PHP cURL Skript
{"userCode":"user478","imei":"39BB4E91-71E8-468D-9FDE-AA2222A93F04","deviceModel":"iPhone5,3","email":"[email protected]"}
Hier ist meine PHP-Code, der nicht funktioniert:
function doRequest($method, $url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip', 'deflate');
curl_setopt($ch, CURLOPT_USERAGENT, "CarteiraPagamento/1.0.3 (iPhone; iOS 9.3.2; Scale/2.00)");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd().'/cookies/out.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd().'/cookies/out.txt');
curl_setopt($ch, CURLOPT_REFERER, 'https://example.com/');
curl_setopt($ch, CURLOPT_VERBOSE, 1);
if ($method == 'POST') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"userCode":"user478","imei":"39BB4E91-71E8-468D-9FDE-AA2222A93F04","deviceModel":"iPhone5,3","email":"[email protected]"}');
}
Wenn ich den curl Befehl auf Terminal laufen, ich habe die richtige Antwort zu bekommen.
curl -i -s -k -X 'POST' \
-H 'Content-Type: application/json; charset=utf-8' -H 'User-Agent: CarteiraPagamento/1.0.3 (iPhone; iOS 9.3.2; Scale/2.00)' \
--data-binary $'{\"userCode\":\"user478\",\"imei\":\"39BB4E91-71E8-468D-9FDE-AA2222A93F04\",\"deviceModel\":\"iPhone5,3\",\"email\":\"[email protected]\"}' \
'https://ws.example.com/example'
Wie kann ich diesen Befehl konvertieren, um mit PHP Curl zu arbeiten?
Was ist der Unterschied in der Ausgabe zwischen den beiden Methoden? – mulquin
Wenn ich mit PHP Script versuche, bekomme ich: '{" errorCode ":" 1000 "," message ":" Anfrage kann nicht abgeschlossen werden. Bitte versuche es später noch einmal. "}' Aber wenn ich Terminal mit curl befehle Ich bekomme die richtige Antwort mit den Daten, die ich möchte. – Vinny
Versuchen Sie 'curl_setopt ($ ch, CURLOPT_BINARYTRANSFER, true) hinzuzufügen;' –