ホームページ >バックエンド開発 >PHPチュートリアル >httpリクエストが失敗した場合の解決策

httpリクエストが失敗した場合の解決策

WBOY
WBOYオリジナル
2016-06-13 12:45:252156ブラウズ

http リクエストは失敗しました
次のコードは HTTP リクエスト コードです。
2 番目のリクエストは失敗しました。何が問題だったのかを理解していただけますか。

通常のプロセス: http リクエストを送信し、401 で応答し、検証付きで別の http リクエストを送信し、200 を返します。仕上げる。
注: コード内のアカウントとパスワードはすべてデフォルトであるため、最初に返されたデータ内のアカウントとパスワードは抽出されません。 2 番目のリクエストのアカウントとパスワードはデフォルトのデータを使用します。

function Socket_Connect_HTTP_Post($server, $port, $dir, $file, $data, $type = '') {
$send_url = str_replace("/", "/", rawurlencode(rawurldecode(urldecode($dir . $file))));
$method = "POST";
$http_header_array["ALL"][] = "受け入れる: */*";
$http_header_array["ALL"][] = "リファラー: http://".$server."/";
$http_header_array["ALL"][] = "Accept-Language: en-us,zh-cn";
$http_header_array["ALL"][] = "ユーザーエージェント: Mozilla/4.0 (互換性; MSIE 6.0; Windows NT 5.1)";
$http_header_array["ALL"][] = "接続: キープアライブ";
$http_header_array["ALL"][] = "ホスト: ".$server;
$http_header_array["ALL"][] = "urn:po-processor"; if(!empty($type)) {
$http_header_array["ALL"][] = "認可: ダイジェストレルム="www.fkhl.sh.cn"、ユーザー名="FHL3301009"、nonce="MTM3MTc5Njg3Mjg3NjpkN2RmYmE4ZDFmMzNiZGQ0ZTAxMDJjMTNjZjI3MDQ2ZQ=="、ipcam/soapservice",ノースカロライナ州=00000001、cnonce="51c3f331ca5600006784"、response="dc0f6160daa71c7e86416e0f1cb63d59"、qop="auth"";
}
$http_header_array["ALL"][] = "SOAPAction:http://www.liveipc.com/UserService/UserOperation";

$http_header_array["POST"][] = "キャッシュ制御: キャッシュなし";
$http_header_array["POST"][] = "Content-Type: text/xml";
$http_header_array["POST"][] = "コンテンツの長さ: ".strlen($data);

if (is_array($http_header_array["ALL"])) {
$http_header_str_all = implode("rn", $http_header_array["ALL"]);
}
if (is_array($http_header_array[$method])) {
$http_header_str_all .= "rn".implode("rn", $http_header_array[$method]);
}

$send_all = "POST ".$send_url." HTTP/1.1rn".$http_header_str_all."rnrn";
$send_all .= $data."rnrn";

$fp_send = fsockopen($server, $port, $errno, $errstr,30);
if ($fp_send)
{
$can_rcv = 0;
fputs($fp_send, $send_all);
stream_set_timeout($fp_send, 120);
while(!feof($fp_send))
{
$content_t = fgets($fp_send, 1024);
if ((trim($content_t) == "") && !$can_rcv)
{
$can_rcv = 1;
$content_t = fgets($fp_send, 1024);
}

if ($can_rcv == 1 and strlen($content_t)>5)
{
$reply_str .= $content_t;
}
}
$stream_status = stream_get_meta_data($fp_send);
fclose($fp_send);
if ($stream_status[timed_out])
{
$reply_str = "";
}
}
return $reply_str;
}

$soap_data = "




<バージョン>1.0.0
GBK
<トランザクション名>ユーザー登録
<ランダム>c7c92fc2882f41f92249fac90aad7bb6

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。