Connecting Tech Pros Worldwide Help | Site Map

sending http post requests

yawnmoth
Guest
 
Posts: n/a
#1: Jul 17 '05
i'm trying to send an http post request and see if the server got it
correctly. i'm sending the http post request with this script:

<?
$address = 'domain.tld';
$port = 80;

$proxy = fsockopen("tcp://$address", (int) $port, $errno, $errstr, 1);

$extra = "extra=blah&this=test";

fputs($proxy,"POST /test.php HTTP/1.0\r\n");
fputs($proxy,"Host: $address\r\n");
fputs($proxy,"Content-Length: ".strlen($extra)."\r\n\r\n");
fputs($proxy,"$extra\r\n");

while (!feof($proxy))
print fgets($proxy);
fclose($proxy);
?>

test.php's contents are as follows:

<?
print_r($_POST);
?>

this is what i want to see:

Array
(
[extra] => blah
[this] => test
)

this is what i am seeing:

Array
(
)

any ideas as to what i'm doing wrong and how i can fix it? thanks!

Colin McKinnon
Guest
 
Posts: n/a
#2: Jul 17 '05

re: sending http post requests


yawnmoth wrote:
[color=blue]
> i'm trying to send an http post request and see if the server got it
> correctly. i'm sending the http post request with this script:
>[/color]

My script looks almost exactly the same (but works ;). A couple of
suggestions:
[color=blue]
> <?
> $address = 'domain.tld';
> $port = 80;
>
> $proxy = fsockopen("tcp://$address", (int) $port, $errno, $errstr, 1);
>[/color]

Timeout seems a bit short - but OK for testing locally. The 'tcp://' was new
to me - according to the manual it's valid. Might be worth trying without.
[color=blue]
> $extra = "extra=blah&this=test";
>
> fputs($proxy,"POST /test.php HTTP/1.0\r\n");
> fputs($proxy,"Host: $address\r\n");[/color]

** maybe add : "Content-type: application/x-www-form-urlencoded\r\n";
[color=blue]
> fputs($proxy,"Content-Length: ".strlen($extra)."\r\n\r\n");
> fputs($proxy,"$extra\r\n");
>[/color]

literal paste from my script:
$p.="Content-length: $len\n\n";
$p.= "$str\n";
$p.= "\r\n";

It was kind of a long tiime ago I wrote it, and can't recall why the first
two lines didn't get a '\r'.

HTH

C.
yawnmoth
Guest
 
Posts: n/a
#3: Jul 17 '05

re: sending http post requests



Colin McKinnon wrote:[color=blue]
> yawnmoth wrote:
>[color=green]
> > $extra = "extra=blah&this=test";
> >
> > fputs($proxy,"POST /test.php HTTP/1.0\r\n");
> > fputs($proxy,"Host: $address\r\n");[/color]
>
> ** maybe add : "Content-type: application/x-www-form-urlencoded\r\n";[/color]

That fixed it - thanks! :)

Closed Thread