有谁知道我为什么可以通过webbrowser请求URL,而不是通过PHP中的http webrequest(GET)?在我的VPS上,我有一个HTTP侦听器侦听某个端口。当我从浏览器请求URL,端口和路径时,它工作正常,但是当我从PHP Web请求请求URL,端口和路径时,它不起作用。
我尝试使用cURL和一些其他方法,例如http_get,但它们似乎都没有用。我认为这可能与我的标题有关,但我并不完全确定。有谁有想法吗?如果你这样做,请发布它们。
这是我目前的代码:
<?php
$url = 'URL';
try {
$response = fetchUrl($url);
echo $response;
} catch (Exception $e) {
error_log('Fetch URL failed: ' . $e->getMessage() . ' for ' . $url);
}
function fetchUrl($uri) {
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $uri);
curl_setopt($handle, CURLOPT_POST, false);
curl_setopt($handle, CURLOPT_BINARYTRANSFER, false);
curl_setopt($handle, CURLOPT_HEADER, true);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 10);
$response = curl_exec($handle);
$hlength = curl_getinfo($handle, CURLINFO_HEADER_SIZE);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
$body = substr($response, $hlength);
// If HTTP response is not 200, throw exception
if ($httpCode != 200) {
throw new Exception($httpCode);
}
return $body;
}
?>
由于