0

我几乎没有使用 cURL 获取内容结果的功能;当我尝试不使用 POST 时,一切正常,但启用 POST 时,结果为空。

此代码不起作用:

function getAPI($url){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_POST, true);
    curl_setopt($ch,CURLOPT_POSTFIELDS,'shard=Apex');     
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3");
    $result = curl_exec($ch);
    return $result; 
    curl_close($ch);
}   

此代码有效,但请求不像 POST 那样传递:

function getAPI($url){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    //curl_setopt($ch,CURLOPT_POST, true);
    //curl_setopt($ch,CURLOPT_POSTFIELDS,'shard=Apex');   
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3");
    $result = curl_exec($ch);
    return $result; 
    curl_close($ch);
}   

我用这个命令调用这个函数:

echo getAPI('http://world.needforspeed.com/SpeedAPI/ws/cmsbridge/news/rss/fr_FR');

你也可以试试这个网址

http://world.needforspeed.com/SpeedAPI/ws/game/nfsw/driver/levelkro/profile

此 URL 仅在 shard=Apex 时有效(默认 shard=CHICANE 用于 CHHICANE 服务器,但我的配置文件仅在 Apex 服务器上可用)

4

2 回答 2

2

根据 SpeedAPI 手册(一个简单的 Google 搜索),给定的 URL 似乎不接受“分片”POST 参数......

获取新闻 RSS 提要的 SpeedAPI 手册

但是,您可以根据手册使用 GET 请求并在适用的情况下使用分片参数。

例如:http : //world.needforspeed.com/SpeedAPI/ws/game/nfsw/driver/DRIVER_NAME/profile?shard=APEX(确保您输入大写的分片参数)

于 2012-08-10T21:51:47.143 回答
0

您是否尝试过将参数作为这样的数组传递:

curl_setopt($ch,CURLOPT_POSTFIELDS,array('shard' => 'Apex'));  
于 2012-08-10T22:09:37.163 回答