2015-01-26 5 views
-1

누군가이 정보를 사용하여 JSON을 다시 가져 오는 방법을 이해하는 데 도움이 될지 궁금합니다. cURL 또는 fsockopen을 사용해야합니까?PHP에서 REST 서비스에 HTTP 요청을하는 방법은 무엇입니까?

GET /market/10000002/orders/buy/?type=https://api-sisi.testeveonline.com/types/683/ HTTP/1.1 
Host: https://api-sisi.testeveonline.com 

인증 : 무기명 jKVB8oaN9qboU5kQG4sWSoWxzSUaFkQaUyeisy8jWU3apRfYSgYsKpZGNbLh41xXEzuy-NDBX1FohEdEadaukQ2 수락 : 응용 프로그램/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

cURL을 사용해야합니다. 방법, 찾기 등을 찾을 수있는 많은 자습서가 있습니다. PHP 매뉴얼. –

+0

고마워, 내가 살펴볼거야. – Waq

+0

나는 REST API에 액세스하기 위해 [Pest] (https://github.com/educoder/pest)를 매우 좋아한다. – halfer

답변

0

fsockopen은 압축, 청킹 등과 같은 모든 것을 스스로 처리해야하기 때문에 실제로 HTTP 요청에 좋은 옵션이 아닙니다. cURL 확실한 옵션이지만, 내 즐겨 찾기는 단지 file_get_contents입니다. 구성에서 allow_url_fopenOn으로 설정해야하지만 이는 실제로 보안 위험이 아니며 기능 자체는 매우 유용합니다.

+0

나는 그 순간에 몇 가지 문제가 있지만 그것에 천천히 가고있는 것 같다. GET 후에 모든 텍스트를 어디에 넣을 지 확신 할 수 없습니다. 곧 메인 포스트를 편집 할 것입니다. – Waq

+0

메인 포스트에 추가되었습니다. 제대로하고 있는지 확실하지 않습니다. – Waq

+0

URL에 추가 할 수 있어야합니다.'file_get_contents ('http://example.com/some/path/?a=b&c=d', false, $ context)' – Siguza

관련 문제