Я пытаюсь открыть соединение с веб-сервером, который я разместил на экземпляре 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
. Что отсутствует или есть, но не должно быть?
Самый простой способ взаимодействия с HTTP-сервером с PHP – использовать завиток .
Это хорошая библиотека с некоторыми замечательными функциями. Это работает хорошо.
$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "Your_url_here"); $resp = curl_exec($curl);