我计划使用PHP来满足一个简单的需求。我需要从URL下载XML内容,为此我需要向该URL发送HTTP GET请求。
PHP中怎么做呢?
我计划使用PHP来满足一个简单的需求。我需要从URL下载XML内容,为此我需要向该URL发送HTTP GET请求。
PHP中怎么做呢?
当前回答
Guzzle是一个非常著名的库,它可以非常容易地进行各种HTTP调用。见https://github.com/guzzle/guzzle。安装composer require guzzlehttp/guzzle,然后运行composer Install。下面的代码对于http get调用来说已经足够了。
$client = new \GuzzleHttp\Client();
$response = $client->get('https://example.com/path/to/resource');
echo $response->getStatusCode();
echo $response->getBody();
其他回答
Http_get应该可以做到这一点。与file_get_contents相比,http_get的优点包括能够查看HTTP报头、访问请求详细信息和控制连接超时。
$response = http_get("http://www.example.com/file.xml");
除非您需要的不仅仅是文件的内容,否则可以使用file_get_contents。
$xml = file_get_contents("http://www.example.com/file.xml");
对于任何更复杂的东西,我将使用cURL。
我喜欢用fsockopen来做这个。
记住,如果你正在使用代理,你需要在你的php代码中做一个小技巧:
(PROXY WITHOUT AUTENTICATION EXAMPLE)
<?php
$aContext = array(
'http' => array(
'proxy' => 'proxy:8080',
'request_fulluri' => true,
),
);
$cxContext = stream_context_create($aContext);
$sFile = file_get_contents("http://www.google.com", False, $cxContext);
echo $sFile;
?>
Guzzle是一个非常著名的库,它可以非常容易地进行各种HTTP调用。见https://github.com/guzzle/guzzle。安装composer require guzzlehttp/guzzle,然后运行composer Install。下面的代码对于http get调用来说已经足够了。
$client = new \GuzzleHttp\Client();
$response = $client->get('https://example.com/path/to/resource');
echo $response->getStatusCode();
echo $response->getBody();