私はPHPを使用してクライアントマシンから私たちの内部サイトにデータをポストする際に問題があります。サーバーは基本認証でHTTPS経由でデータを受け入れます。HTTP POST要求レスポンス(バグ?)
次のヘッダーで$parameters = array('http' => array(
'method' => 'POST',
'content' => $data
)
);
if ($optionalHeaders !== NULL) {
$parameters['http']['header'] = $optionalHeaders;
}
$ctx = stream_context_create($parameters);
$fp = fopen($url, 'rb', false, $ctx);
を::
$postHeader = "POST /index.php HTTP/1.1\r\n".
"Host:my.host\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"User-Agent: PHP-Code\r\n".
"Content-Length: " . strlen($postData) . "\r\n".
"Authorization: Basic ".base64_encode($user.':'.$password)."\r\n".
"Connection: close\r\n";
さて、私はこの仕事を得ることができ、そしてそれは私のクライアントの一つにうまくポストここで私が投稿する使用しているコードがありますPHPバージョン5.2.5で、私は、このエラーメッセージを取得別のクライアント上:
fopen(magical_url): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request
とApacheのエラーログが得られます。
request failed: error reading the headers
私が見ることができる唯一の違いは、後者のクライアントがPHPバージョン5.1.6を持っていることです。 誰かがこれがバグかどうか知っていますか?または、私はどこかで何か間違ったことをしています... 私はPHPサイトを見て、このバグがPHP https://bugs.php.net/bug.php?id=45540のバージョン5.2.6に列挙されていることを発見しました。
おかげで、 のJak
ありがとう、ありがとう。私はそれらの部分を削除し、それは動作します。奇妙なことに、それは他のクライアントマシンですべてのヘッダーを使用していました。 – Jak