Как сделать HTTP-запрос к REST-сервису на PHP?

Мне было интересно, может ли кто-нибудь помочь мне понять, как я получу 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);

Это была моя следующая попытка, над которой я все еще работаю.

-1

Решение

fsockopen на самом деле не является хорошим вариантом для HTTP-запросов, поскольку вы должны позаботиться обо всем самостоятельно (например, сжатие, разбиение на фрагменты и т. д.). завивать конечно это вариант, но мой любимый просто file_get_contents. Тебе нужно иметь allow_url_fopen установлен в On в конфиге, но это не совсем угроза безопасности, а сама функция очень способна.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]