1

我认为这应该很简单,但我无法理解。

我需要向以下格式的 url 发出请求:

http://ratings.api.co.uk/business/ {lang}/{fhrsid}/{format} 其中 lang 将设置为 en-GB,fhrsid 是标识符,格式是 json。

我尝试了以下方法,但我只是得到 null 作为回报:

$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));

感激地收到任何帮助

4

2 回答 2

2

您当前正在将数据发布到 URL,同时您说要将数据放入 URL 本身。

即现在您提交{"lang:"en-GB","fhrsid":80928}到 URL http://ratings.api.co.uk/business/json,但您想要检索 URL http://ratings.api.co.uk/business/en-GB/80928/json

不要POST用作请求类型,不要指定 postfields,不要指定 content-length,并将数据放在你的 URL 中。

于 2012-05-14T14:46:17.893 回答
2

将数据作为参数发送与在 URL 中发送数据不同。

如果您需要 url 格式http://ratings.api.co.uk/{lang}/{fhrsid}/{format},那么您必须使您的curl_init字符串与该格式匹配。

于 2012-05-14T14:46:59.113 回答