PEAR HTTP_Requestでのヘッダ送信
PEARのHTTP_Requestを使用し、
下記処理にてTEST_URL向けにPOSTとヘッダを同時に送信する処理を行いたいのですが
411 Length Requiredで返ってきてしまします。
サーバのログには
Invalid URI in request Connection: Keep-Alive
というログがerrorログに出ています。
そこでRFCを読んで見ると、
転送コーディングが施されていない場合は
Content-Length ヘッダは送られなければならないが、
メッセージボディ中のオクテット数と
正確に一致しなければならないとの記載がありました。
ここに引っかかっているのかもと思い対策しようと思いましたが
メッセージボディのlength(下記の☆部分)をどのように拾うかがわかりません。
require_once "HTTP/Request.php";
$req = &new HTTP_Request(TEST_URL,array());
$req->setURL(TEST_URL);
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->addHeader('Host',"test.hogehoge.jp\r\n");
$req->addHeader('Content-Length',"-☆-\r\n");
$req->addHeader('Connection', "Keep-Alive\r\n");
$req->addHeader('User-Agent',"TEST ABCDEFG\r\n");
$req->addPostData('TEST_POST', 'testnano');
$result = $req->sendRequest();
if(PEAR::isError($result)) {
echo $result->getMessage();
echo "<br />";
} else {
echo $req->getResponseCode();
echo "<br />";
echo $req->getResponseBody();
echo "<br />";
}
もしかして違う原因でしょうか?
よろしくおねがいします。
お礼
もう少し勉強してから、再度質問をしたいと思います。 ありがとうございました。
補足
完全に勉強不足でした。 仕様で、リバースプロキシから来るリクエストヘッダを読み取るということになっていたので、 てっきりIISで何か設定すれば追加できるのかと思いお聞きしてしましました。 リクエストヘッダは、どうすれば追加できるでしょうか?