如何将自定义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似乎不能。
答案 0 :(得分:2)
看起来您的代码没有任何问题。如果您使用的是共享主机提供商,请让他们打开出站TCP端口7899。
答案 1 :(得分:0)
您可以使用http_request_method_register函数创建自定义HTTP请求方法:
http://www.php.net/manual/en/function.http-request-method-register.php
此代码需要在将处理请求的服务器上运行。如果您尝试在任何旧服务器上使用非标准HTTP请求方法,则可能会忽略它,或者可能会返回错误代码。