0
내 문제가 있습니다 GET fsockopen을 사용하여 POST를 수행 한 후
쿠키를 보내지 만 성공하지 못했습니다. >POST
내가 HTTP/1.1 302 개체 이동 수신 - -fsockopen - POST 및 GET PHP
나는 HTTP/1.1 302 개체 이동 받게>이 저에게,하지만 난 HTTP/1.1 200 OK
을받을 것으로 예상내 코드 :
사용법 : $ this-> (읽기);
function HTTP_POST($URL, $data, $referrer="")
{
$URL_Info=parse_url($URL);
if($referrer=="")
{
$referrer=$_SERVER["SCRIPT_URI"];
}
foreach($data as $key=>$value)
{
$values[]="$key=".urlencode($value);
}
$data_string=implode("&",$values);
if(!isset($URL_Info["port"]))
{
$URL_Info["port"]=80;
}
$request.="POST ".$URL_Info["path"]." HTTP/1.1\n";
$request.="Host: ".$URL_Info["host"]."\n";
$request.="Referer: $referer\n";
$request.="Content-type: application/x-www-form-urlencoded\n";
$request.="Content-length: ".strlen($data_string)."\n";
$request.="User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/2100101 Firefox/4.0.1\n";
$request.="Connection: close\n";
$request.="\n";
$request.=$data_string."\n";
$fp = fsockopen($URL_Info["host"],$URL_Info["port"]);
fputs($fp, $request);
while(!feof($fp))
{
$result .= fgets($fp, 128);
}
fclose($fp);
return $result;
}
function HTTP_GET($URL, $cookie, $referrer="")
{
$URL_Info = parse_url($URL);
if($referrer=="")
{
$referrer=$_SERVER["SCRIPT_URI"];
}
if(!isset($URL_Info["port"]))
{
$URL_Info["port"]=80;
}
$request.="GET ".$URL_Info["path"]." HTTP/1.1\n";
$request.="Host: ".$URL_Info["host"]."\n";
$request.="Referer: $referer\n";
$request.="User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/2100101 Firefox/4.0.1\n";
$request.="Cookie: ".$cookie."\n";
$request.="Connection: close\n";
$request.="\n";
$fp = fsockopen($URL_Info["host"],$URL_Info["port"]);
fputs($fp, $request);
while(!feof($fp))
{
$result .= fgets($fp, 128);
}
fclose($fp);
return $result;
}
function read()
{
$headers = array();
$data = array('CNPJ' => '02340534000192', 'consulta' => 'OK', 'vazio' => '');
$html = $this->HTTP_POST('http://www.sefaz.pe.gov.br/sintegra/consulta/consulta.asp', $data);
$arr = split("Set-Cookie:", $html);
$cookie="";
$count=1;
while ($count < count($arr))
{
$cookie.=substr($arr[$count].";", 0, strpos($arr[$count].";",";")+1);
$count++;
}
echo $html."<br><hr><br>";
$html = $this->HTTP_GET('http://www.sefaz.pe.gov.br/sintegra/consulta/exibirResultado.asp', $cookie);
echo $html;
}
아무도 도와 줄 수 있습니까?
감사합니다.
HTTP 200을 수신 할 수 없습니다. 목표는 200이지만, 실행하기 전까지 만 30239 ... – user3192562
을 열어서 크롬을 열어보고 Ctrl + Shift + I를 누른 다음 필요한 페이지를 엽니 다. 헤더가 동일하면 페이지가 임시 이동합니다. – RussianVodka