2016-08-12 1 views
1

Ich möchte das Preisfeld in einer Website mit der Anforderung "Curl PUT" aktualisieren. Aber ich bin nicht in der Lage, den Fehler in meinem Code herauszufinden. Es wird eine große Hilfe sein, wenn Sie den Fehler finden können. Unten ist mein Code.Anforderung zum Aktualisieren von Daten auf einer Website

$api_request_url = 'http://example.com/variants/SOMETHING'; 


$method_name = 'PUT'; 

$header = array(
"Accept: application/json, text/plain", 
"Content-Type: application/json;charset=utf-8", 
"Connection: keep-alive", 
"Accept-Language: en-US,en;q=0.5", 
"Accept-Encoding: gzip, deflate", 
"Content-Length: 82", 
"Referer: http://seller.example.com/catalog", 
"Cache-Control: max-age=0, private, must-revalidate" 
); 

$payload = array(
//"variant: 'YEL510044' , 6",// 
'price' => '600', 
//"original_price: 999"// 
); 
$data_string = json_encode($payload); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 


curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 



curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 


curl_setopt($ch, CURLOPT_URL, $api_request_url); 


curl_setopt($ch, CURLOPT_HEADER, TRUE); 


curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 


$api_response = curl_exec($ch); 


$api_response_info = curl_getinfo($ch); 
echo "$api_response"; 

curl_close($ch); 
+0

versuchen Sie nicht, echte Websites in Ihrem Code zu verwenden. –

+0

Sie haben uns die tatsächliche Fehlermeldung nicht angezeigt. Wie scheitert es? – tripleee

+0

Sie erhalten keine Fehlermeldung? Fügen Sie 'ini_set ('display_errors'," 1 ");' oben in Ihrem Skript hinzu. Bearbeiten Sie dann Ihre Frage und fügen Sie die Fehlermeldung hinzu. – Challe

Antwort

2

Sie versuchen, Code ändern:

$data_string = json_encode($payload); 

zu

$data_string = http_build_query($payload); 
+0

Ich habe die Aussage geändert. Tatsächlich habe ich diese Funktion früher ausprobiert. aber es hat auch nicht funktioniert. Ich bekomme nur die leere Seite und keine Fehlermeldung. –

+0

Sie ändern Array-Header "Content-Typ: application/json; charset = utf-8", bis "Content-Type: application/x-www-form-urlencoded" –

+0

Nichts geändert, das gleiche Problem. –

0

sollten Sie versuchen:

curl_setopt ($ ch, CURLOPT_PUT, true);

anstelle von

curl_setopt ($ ch, CURLOPT_CUSTOMREQUEST, 'PUT');

Verwandte Themen