0

この URL に投稿リクエストを送信しようとしています。

http://clan.z8games.com/clanServices.asmx/getPlayerPublicInfo

このJSON文字列で

{"usn":12434525}

これに似た出力を取得するには;

 {"d":"{\"usn\":12434525,\"nick\":\"Guiness\",\"lev\":39,\"playCnt\":3734,\"winCnt\":3210,\"loseCnt\":239,\"enemyKillCnt\":129734,\"deathCnt\":5140,\"exp\":1072522,\"headshotKillCnt\":120339,\"friendKillCnt\":5,\"escapeCnt\":45,\"regDate\":\"2011\",\"lastPlayDate\":\"2012-08-12\",\"guildid\":217089,\"clanName\":\"Guiness™\",\"memberType\":null,\"gcClanID\":55000,\"hs5p\":202,\"fk1p\":0,\"k10p\":211,\"d20p\":2,\"esc4p\":0,\"sv3p\":676,\"matchLosses\":98,\"matchWins\":1894}"}

ゲームアカウント(統計など)のデータスクレーパーを作成しており、アカウントIDに基づいて各ページが異なるためです。

私はこれを試しました:

<?php 
$usn=$_GET["accountUSN"]; 
$url='http://clan.z8games.com/clanServices.asmx/getPlayerPublicInfo';

$options = array(
    'http' => array(
        'method' => "POST",
        'content' => http_build_query(
            array(
                'usn'=>$usn
             )
        )
    )
);

$context = stream_context_create($options);
$result =  file_get_contents($url,NULL,$context);
var_dump($result);
?>

誰かがこれを提案しましたが、常に返されます

bool(false)

これを適切に行う方法を知りたいだけです。それで気分が良くなるなら、完全なコードは本当に必要ありません。また、cURL を避けようとしており、ネイティブ オプションが必要です。

また、誰かがここで私を助けようとしていた: https://stackoverflow.com/questions/11920064/php-simple-html-dom-parser-not-giving-me-text-for-a-td投稿、新しいユーザーです。これを元に戻すにはどうすればよいですか?

編集:

<?php

$usn=$_GET['accountUSN'];
$url='http://clan.z8games.com/clanServices.asmx/getPlayerPublicInfo';

$options=array('http'=>array('method'=>'POST','content'=>'content' => '{\'usn\':$usn}'));

$context=stream_context_create($options);
$result=file_get_contents($url,NULL,$context);
var_dump($result);
?>

サーバーエラー。

4

2 に答える 2

0

私がこれを使用した方法は、ファイルを開き、ファイル ポインターからストリーム コンテンツを取得することです。

$context = stream_context_create($options); 
$fp = fopen($url, 'rb', false, $context);
if (!$fp) {
   die('Failed to open stream');
}
$result = stream_get_contents($fp);
var_dump($result);
于 2012-08-14T01:50:04.457 に答える
0

Firebug を使用できる可能性があります。Net タブを参照し、プログラムで送信したものとブラウザが送信したものを比較してください。必要なものを送信したことを確認してください。

于 2012-08-14T02:51:00.670 に答える