1

我正在尝试打开与我在 Amazon EC2 实例上托管的网络服务器的连接。我可以通过浏览器的 GET 请求访问该端口,这给了我以下信息:

Started HTTP server...
- <IP redacted> [19/Jul/2013 13:49:24] code 501, message Unsupported method ('GET')
- <IP redacted> [19/Jul/2013 13:49:24] "GET / HTTP/1.1" 501 -

这是预期的,因为我没有在网络服务器上实现 GET - 但我使用以下代码段 POST 到同一端口根本没有得到任何响应。

<?php
$req = 'verify=true'; 

$header = "POST / HTTP/1.1\r\n"; 
$header .= "Host: ec2-55-555-555-555.compute-1.amazonaws.com\r\n"; 
$header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; 
$fp = fsockopen ("ec2-55-555-555-555.compute-1.amazonaws.com", 8080, $errno, $errstr, 30); 

fputs ($fp, $header . $req); 

fclose ($fp);
?>

它肯定会运行并到达终点,但fsockopen通话超时。缺少什么或存在但不应该存在什么?

4

1 回答 1

2

从 PHP 与 HTTP 服务器交互的最简单方法是使用curl

这是一个很好的库,有一些很棒的功能。它运作良好。

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "Your_url_here");

$resp = curl_exec($curl);
于 2013-07-19T14:00:41.333 回答