2016-02-08 2 views
-1

Я пытаюсь отправить JSON в веб-службу java, но получаю ответ от веб-службы, который содержит все значения null, см. Ниже. Что-то не так с моим кодом?PHP cURL JSON, отправляющий пустые параметры

$buildApplication = array(
    'firsname'   => 'Keith', 
    'surname'   => 'Francis', 
    'companyName'  => 'Keiths Mobile Discos', 
    'phone'    => '07123456789', 
    'email'    => '[email protected]', 
    'sourceCode'  => 'W00T' 
); 
$data = json_encode($buildApplication);                            
$ch = curl_init('http://10.50.1.71:8080/SME/api/details.json');                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
'Content-Type: application/json',                     
'Content-Length: ' . strlen($data))                  
);                             
$result = curl_exec($ch); 
var_dump($result); 

Response возвращается

string(1042) "{"errors":[{"object":"com.application.AppDetails","field":"firstname","rejected-value":null,"message":"Property [firstname] of class [class com.application.AppDetails] cannot be null"},{"object":"com.application.AppDetails","field":"surname","rejected-value":null,"message":"Property [surname] of class [class com.application.AppDetails] cannot be null"},{"object":"com.application.AppDetails","field":"companyName","rejected-value":null,"message":"Property [companyName] of class [class com.application.AppDetails] cannot be null"},{"object":"com.application.AppDetails","field":"phone","rejected-value":null,"message":"Property [phone] of class [class com.application.AppDetails] cannot be null"},{"object":"com.application.AppDetails","field":"email","rejected-value":null,"message":"Property [email] of class [class com.application.AppDetails] cannot be null"},{"object":"com.application.AppDetails","field":"sourceCode","rejected-value":null,"message":"Property [sourceCode] of class [class com.application.AppDetails] cannot be null"}]}" 
+2

Почему вы JSON кодирования в два раза? – Harikrishnan

+0

@Tom Опечатка. Вы отправили 'firsname' вместо' firstname' – AnkiiG

ответ

0
  • Вы выложили firsname вместо firstname.
  • Также вы использовали json_encode дважды.

Попробуйте, как показано ниже:

$buildApplication = array(
    'firstname'   => 'Keith', 
    'surname'   => 'Francis', 
    'companyName'  => 'Keiths Mobile Discos', 
    'phone'    => '07123456789', 
    'email'    => '[email protected]', 
    'sourceCode'  => 'W00T' 
); 
$data = json_encode($buildApplication);                            
$ch = curl_init('http://10.50.1.71:8080/SME/api/details.json');                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
'Content-Type: application/json',                     
'Content-Length: ' . strlen($data))                  
);                             
$result = curl_exec($ch); 
var_dump($result); 
+0

Спасибо, что избавляется от этой ошибки. Но теперь я получаю respones - string (0) "" – Tom

0

Вы использовали json_encode дважды.

Написать ниже линии, как: -

curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
Смежные вопросы