2016-06-20 5 views
0

Ich habe eine Anwendung auf PHP ausgeführt. Jetzt habe ich eine Anforderung, wo ich eine API-Anfrage (POST-Methode) an einen Server senden muss, der auf JAVA läuft, einschließlich JSON-Daten. Ich habe versucht, die Curl-Methode von PHP zu verwenden, konnte aber die Anfrage nicht senden. Ich habe den folgenden Code für das gleiche ausprobiert.Wie mache ich eine POST-Anfrage mit JSON-Daten von PHP nach Java?

$data = array("user_id"=>"6cdedfcc-ff55-449f-8362-af3ae0e04928"); 
$data_string = json_encode($data);                    

$ch = curl_init('https://java-api-url/api');                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
    'Content-Type: application/json',                     
    'Content-Length: ' . strlen($data_string))                  
);                             

$result = curl_exec($ch); 
print_r($result); 
+2

Was bedeutet "keine Anfrage senden"? Welche Antwort sehen Sie nach dem Senden der POST-Anfrage? –

+0

Eigentlich, als ich den Fehler mit Statuscode überprüfte, fand ich, dass das Problem auf SSL-Zertifikat (https) zurückzuführen war. Der Code funktionierte wie erwartet. Jetzt ist das Problem behoben. Danke jeder für Ihre Zeit –

Antwort

0
$data = NULL; 

$data['user_id'] = "6cdedfcc-ff55-449f-8362-af3ae0e04928"; 

$data_string = json_encode($data);                    

$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL,'https://java-api-url/api');              
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
    'Content-Type: application/json',                     
    'Content-Length: ' . strlen($data_string))                  
);                             

$result = curl_exec($ch); 



print_r($result); 
+0

danke für deinen Vorschlag. –

1

vielleicht können Sie dies versuchen:

curl_setopt ($ ch, CURLOPT_POST, 1);

statt:

curl_setopt ($ ch, CURLOPT_CUSTOMREQUEST, "POST");

+0

danke für Ihren Vorschlag. –

Verwandte Themen