我试图做一个POST请求此网址:我无法张贴JSON字符串的URL在JSON
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}"}
因为我为游戏帐户(如统计数据)制作datascraper并且每个页面根据帐户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);
?>
服务器错误。
你正在发送内容作为查询字符串不是一个JSON字符串 – Musa 2012-08-14 00:40:31
你能解释一下吗?我不明白:(我查询帐号,因为它看起来像这样:http://clan.z8games.com/charstat_cf.aspx?usn = 12434525但页面加载后,ajax调用链接我如果你想要json,你可以使用''content'=>“{\”usn \“:$ usn}”' – lolwut123 2012-08-14 00:42:36
'http_build_query'会给你'usn = 12434525'尝试了你说的话,我得到一个服务器错误 – Musa 2012-08-14 00:46:10