2012-05-14 3 views
1

Это должно быть просто, я думаю, но я просто не могу понять.Как сделать запрос JSON Curl на api url, получив нуль

мне нужно сделать запрос к URL в следующем формате:

http://ratings.api.co.uk/business/ {языки}/{fhrsid}/{формат} где язык будет установлен на ан-ГБ fhrsid является идентификатором и формат это json.

Я попытался следующие, но я просто получаю пустой взамен:

$data = array("lang" => "en-GB", "fhrsid" => "80928");                  
$data_string = json_encode($data);    


$ch = curl_init('http://ratings.api.co.uk/business/json');                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
'Content-Type: application/json', 
'Content-Length: ' . strlen($data_string))            );                             

$Jsonresult = curl_exec($ch); 
curl_close($ch); 

var_dump(json_decode($Jsonresult)); 

Любая помощь с благодарностью получил

+3

Если вы скажете, что вам нужно отправить запрос на '/ business/en-GB/80928/json', почему вы отправляете его в'/business/json'? – rid

+0

Опечатка в вопросе, мой плохой – Textus

+0

Мой вопрос по-прежнему применяется ... Вы явно говорите, что вам нужно отправлять запросы на URL '/ business/lang/fhrsid/format'. Но вы отправляете запросы на URL '/ business/json' ... – rid

ответ

2

Вы в настоящее время размещая данные в URL, в то время как вы говорите, что вы хотите поставить данные в самом URL-адресе.

I.e. теперь вы отправляете {"lang:"en-GB","fhrsid":80928} по адресу http://ratings.api.co.uk/business/json, но вместо этого вы хотите получить URL-адрес http://ratings.api.co.uk/business/en-GB/80928/json.

Не используйте POST в качестве типа запроса, не указывайте postfields, не указывайте длину контента и не помещайте данные в свой URL.

2

Отправка данных в качестве аргументов отличается от отправки в URL.

Если вам нужен формат url http://ratings.api.co.uk/{lang}/{fhrsid}/{format}, тогда вы должны сделать строку curl_init соответствующей этому формату.

+0

, конечно .... duh, большое спасибо, вот что приносит новорожденного ребенка вашему мозгу. – Textus

+0

@Textus поздравления – Kristian

Смежные вопросы