我想知道是否有人可以帮助我了解如何使用此信息获取JSON?我应该使用cURL还是fsockopen?
GET /market/10000002/orders/buy/?type=https://api-sisi.testeveonline.com/types/683/ HTTP/1.1
Host: https://api-sisi.testeveonline.com
授权:持票人jKVB8oaN9qboU5kQG4sWSoWxzSUaFkQaUyeisy8jWU3apRfYSgYsKpZGNbLh41xXEzuy-NDBX1FohEdEadaukQ2 接受:application / vnd.ccp.eve.MarketOrderCollection-v1 + json
我试过这样做,但我不知道这是否是一种可行的做法?
$fp = fsockopen("api.eveonline.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET /market/10000002/orders/buy/? type=https://api.eveonline.com/types/683/ HTTP/1.1\r\n";
$out .= "Host: https://api.eveonline.com\r\n";
$out .= "Authorization: Bearer ".auth."\r\n\r\n";
$out .= "Accept: application/vnd.ccp.eve.MarketOrderCollection-v1+json\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
由于
编辑1:
$opts = array('http' =>
array(
'method' => 'GET',
'header' => "Host: https://api.eveonline.com\r\n".
"Authorization: Bearer ".auth."\r\n".
"Accept: application/vnd.ccp.eve.MarketOrderCollection-v1+json\r\n"
)
);
$context = stream_context_create($opts);
$url = 'https://api.eveonline.com/';
$result = file_get_contents($url, false, $context);
这是我下一次尝试,我仍然在努力。
答案 0 :(得分:0)
fsockopen对于HTTP请求来说真的不是一个好选择,因为你必须自己处理所有事情(例如压缩,分块等)。 cURL肯定是一个选项,但我最喜欢的只是file_get_contents
。您需要在配置中将allow_url_fopen
设置为On
,但这不是真正的安全风险,而且功能本身非常强大。