3

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

我的意思是,第一行不是像这样的普通 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 似乎无法打开。

4

2 回答 2

2

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

于 2013-06-04T20:28:44.713 回答
0

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

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

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

于 2013-06-04T19:52:23.960 回答