PHP发送自定义HTTP请求

时间:2013-06-04 19:15:18

标签: php http curl request

如何将自定义HTTP请求发送到URL为“http:// [IP]:[端口] /”的服务器?

我的意思是,而不是第一行是正常的GET或POST,如下所示:

GET /index.html HTTP/1.1
Host: www.example.com

如何用以下内容替换它:

CUSTOM
Host: [IP]

我不介意在必要时使用任何其他库,例如cURL。

更新:

我尝试使用以下cURL代码:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://[IP]:[Port]/");
curl_setopt($ch, CURLOPT_PORT, [Port]);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "CUSTOM");

$output = curl_exec($ch);
curl_close($ch);      

print($output);

但它只是加载2分钟,直到它说内部错误(使用和不使用CURLOPT_CUSTOMREQUEST)。但是,如果我使用http://google.com这样的标准网站,它就可以正常使用。

另外我忘了提一下,我服务器使用的端口是7899,这样可以吗?在我的网络浏览器中打开它很好,但cURL似乎不能。

2 个答案:

答案 0 :(得分:2)

看起来您的代码没有任何问题。如果您使用的是共享主机提供商,请让他们打开出站TCP端口7899。

答案 1 :(得分:0)

您可以使用http_request_method_register函数创建自定义HTTP请求方法:

http://www.php.net/manual/en/function.http-request-method-register.php

此代码需要在将处理请求的服务器上运行。如果您尝试在任何旧服务器上使用非标准HTTP请求方法,则可能会忽略它,或者可能会返回错误代码。