ファイルを受信して応答を返すPHPスクリプトがあります。HTTP応答にはわからないテキストが含まれています
PHPスクリプトは、このような応答を返す:私はPuTTYのからPOSTリクエストを行うと
echo "<response><status>success</status><message>file received: test.txt</message></response>";
、私が受け取る応答はこれです:
6b
<response><status>success</status><message>file received: test.txt</message></response>
応答に応じて、6b
を他にも何かがあるだろうか?これは16進数の応答の長さですか?
PHPスクリプト。現在、私は単純にファイルをPOSTしてレスポンスを受け取って解析することができます。したがって、PHPファイルはベアボーンです。
<?php
if (array_key_exists('file',$_FILES) && $_FILES['file']['size'] != 0)
{
$status = 'success';
$message = "File received: " . $_FILES['file']['name'];
}
else
{
$status = 'failed';
$message = "No file received.";
}
$reply = "<response>"
."<status>" . $status . "</status>"
."<message>" . $message . "</message>"
."</response>";
echo $reply;
?>
私はパテにポート80を超えるRAWの接続を確立し、このようなPOSTリクエストを作っています:
POST /file_post.php HTTP/1.1
Host: example.com
Connection: Keep-Alive
Content-Length: 212
UserAgent: Mozilla/5.0
Content-Type: multipart/form-data; boundary=---------------------8ce9826eb81af6a
-----------------------8ce9826eb81af6a
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: application/octet-stream
TestData
-----------------------8ce9826eb81af6a--
REPONSEこれは、転送チャンクエンコーディングされ
私は6bが何であるか分かりませんが、キャラクタの長さ(87d)は57hです。 – Bojangles
PHPでどのようにレスポンスを取得していますか?カールする場合は、CURLOPT_HEADERを使用して、ヘッダーと本文の応答を表示します。それはあなたがPuTTyで得るものと一致しますか? – ben
PHPスクリプトのソースコードはここで便利です。もし実際には16進数でのメッセージの長さ(*ここではhttp://www.binaryhexconverter.com/hex-to-decimal-converter)はあなたがチェックするのに役立つ電卓です[chunked transfer-encoding](http://en.wikipedia.org/wiki/Chunked_transfer_encoding) – DaveRandom