2016-05-13 31 views
1

Ich sende eine POST-Anfrage mit JSON-Daten. Mein PHP-Code gibt einen 301-Status zurück. Ich habe versucht, dies in JS und C# zu tun, aber es funktioniert immer noch nicht. ABER!! Mit Postman erhalte ich die richtige Antwort mit den Daten, die ich brauche. Immer noch, ich bin Copy-Paste-Code von Postman generiert und es funktioniert auch nicht !!301 Status während der Verwendung der Postanforderung

<?php 

$curl = curl_init(); 

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-dev.gu.spb.ru/hakatonRest/checkInn", 
CURLOPT_RETURNTRANSFER => true, 
CURLOPT_ENCODING => "", 
CURLOPT_MAXREDIRS => 10, 
CURLOPT_TIMEOUT => 30, 
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
CURLOPT_CUSTOMREQUEST => "POST", 
CURLOPT_POSTFIELDS => "{\r\n\"serviceCode\":\"FNS001\",\r\n\"serviceData\":   {\r\n   \"firstName\":\"иван\",\r\n   \"lastName\":\"иванов \",\r\n   \"secondName\":\"иванович\",\r\n   \"birthday\":\"22.07.1989\",\r\n   \"documentType\":\"21\",\r\n   \"documentSeries\":\"4112\",\r\n   \"documentNumber\":\"412512\"\r\n}\r\n\r\n}\r\n", 
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache", 
"content-type: application/json", 
"postman-token: 1dcb6bfa-531c-aff8-535e-70ba5c799775" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} 
+0

Dies ist kaputt '" {\ r \ n \ "serviceCode \": \ "FNS001 \", \ r \ n \ "serviceData \": '.' Postman-token'? Ist das der richtige Name der Header ? –

Antwort

1

Fügen Sie CURLOPT_FOLLOWLOCATION hinzu, um den Umleitungen zu folgen.

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

Zweitens Ihre CURLOPT_POSTFIELDS => "{\r\n\"serviceCode\":\"FNS00 scheint falsch json Datenstring (json enthalten keine \ r \ n in dort). Bitte validiere json-Daten, bevor du hierhin gehst.

Verwandte Themen