Jamie Bull
Jamie Bull

Reputation: 13529

Opening connection to HTTP server with PHP

I'm trying to open a connection to a webserver I have hosted on an Amazon EC2 instance. I can access the port with a GET request from my browser which gives me the following:

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 -

This is as expected as I haven't implemented GET on the webserver - but I get no response at all using the following snippet to POST to the same port.

<?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);
?>

It definitely runs and reaches the end but the fsockopen call is timing out. What's missing or is there but shouldn't be?

Upvotes: 1

Views: 3974

Answers (1)

Xaqq
Xaqq

Reputation: 4386

The easiest way to interact with an HTTP server from PHP would be to use curl.

It's a good library with some great features. It works well.

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

$resp = curl_exec($curl);

Upvotes: 2

Related Questions