我在尝试发送Post请求并获得结果时遇到了问题,这是我的代码:
function connect2($hostname,$method,$path,$data,$cookie){
$fp=fsockopen($hostname, 80, $errno, $errstr, 30);
if(!$fp) echo "$errstr($errno)<br>/>\n";
else{
$headers="$method $path HTTP/1.1\r\n";
$headers.= "Host: $hostname\r\n";
if($cookie) $headers.="Cookie: $cookie\r\n";
if($method=="POST") $headers.="Content-length: ".strlen($data)."\r\n";
if($method=="POST") $headers.="Content-Type: multipart/form-data; boundary=---------------------------4358114262792\r\n";
$headers.="Referer: http://ospb.dev.1adw.com/vt/houses/add\r\n";
$headers.="Connection: keep-alive\r\n";
if($method=="POST")$headers.="\r\n\$data\r\n";
$headers.="\r\n";
fwrite($fp, $headers);
$line="";
while(!feof($fp)){
$line.=fgets($fp, 1024);
}
fclose($fp);
}
return $line ;
}
$data="-----------------------------4358114262792\r\n"
."Content-Disposition: form-data; name=\"action\"\r\n\r\n".
"add\r\n".
"-----------------------------4358114262792\r\n".
"Content-Disposition: form-data; name=\"selectedTab\"\r\n\r\n".
"0\r\n".
"-----------------------------4358114262792\r\n".
"Content-Disposition: form-data; name=\"house[officeId]\"\r\n\r\n".
"450\r\n".
"-----------------------------4358114262792\r\n".
"Content-Disposition: form-data; name=\"house[streetId]\"\r\n\r\n".
"968432\r\n".
"-----------------------------4358114262792\r\n".
"Content-Disposition: form-data; name=\"house[number]\"\r\n\r\n".
"20\r\n".
"-----------------------------4358114262792\r\n".
"Content-Disposition: form-data; name=\"house[building]\"\r\n\r\n".
"1\r\n".
"-----------------------------4358114262792\r\n".
"Content-Disposition: form-data; name=\"house[sourceUrl]\"\r\n\r\n".
"http://uk-sozidanie.ru/homes/\r\n".
"-----------------------------4358114262792\r\n".
"Content-Disposition: form-data; name=\"house[statusId]\"\r\n\r\n".
"1\r\n".
"-----------------------------4358114262792\r\n".
"Content-Disposition: form-data; name=\"__token\"\r\n\r\n".
"cfc3901629435\r\n".
"-----------------------------4358114262792--";
...
$b = connect2("ospb.dev.1adw.com", "POST", "/vt/houses/add", $data ,$cookie);
这是错误:
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\cdo\www\add.php on line 46
我只是想模拟真实的请求,它可以正常工作并且几乎可以非常简单地返回好的结果。
添加了: 我是否正确计算了数据长度?
答案 0 :(得分:0)
在文件的顶部,在<?php
标记之后,将set_time_limit(0);
置于无限制的处理时间...或使用更高的内容,例如120
答案 1 :(得分:0)
您应该在PHP中使用cURL函数来处理所有HTTP / HTTP请求,这应该可以解决您的问题。
如果您不想使用cURL,请发送您要发送的实际请求的实际请求/响应标头。问题可能在于您发送的$ vars数据。