0

cURL でコンテンツの結果を取得する機能はほとんどありません。POSTなしで試したところ、すべてうまくいきましたが、POSTを有効にすると、結果はnullです。

このコードは機能しません:

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

このURLで試すこともできます

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

この URL は、shard=Apex の場合にのみ機能します (CHHICANE サーバーのデフォルトの shard=CHICANE ですが、私のプロファイルは Apex サーバーでのみ使用できます)。

4

2 に答える 2

2

SpeedAPI マニュアル (単純な Google 検索) によると、指定された URL は「シャード」POST パラメータを受け入れないようです...

Get News RSS フィードの SpeedAPI マニュアル

ただし、マニュアルに従って、必要に応じて GET リクエストを使用し、シャード パラメータを使用することができます。

例: http://world.needforspeed.com/SpeedAPI/ws/game/nfsw/driver/DRIVER_NAME/profile?shard=APEX (shard-parameter は必ず大文字で入力してください)

于 2012-08-10T21:51:47.143 に答える
0

代わりに、次のようにパラメーターを配列として渡してみましたか:

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