HTTP Webrequest不发送正确的请求?

时间:2014-09-16 00:24:40

标签: php

有谁知道我为什么可以通过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;
}
?>

由于

0 个答案:

没有答案