HTTP-ответ содержит текст, который я не понимаю - PullRequest
0 голосов
/ 03 января 2012

У меня есть PHP-скрипт, который получает файл и возвращает ответ.

PHP-скрипт возвращает ответ следующим образом:

echo "<response><status>success</status><message>file received: test.txt</message></response>";

Когда я делаю POST-запрос от PuTTY,Ответ, который я получаю, таков:

6b
<response><status>success</status><message>file received: test.txt</message></response>

В зависимости от ответа, 6b может быть и другим?Это длина ответа в шестнадцатеричном формате или что-то еще?

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;
?>

Я устанавливаю соединение RAW через порт 80 на putty, исделать запрос 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--

Получен ответ

enter image description here

1 Ответ

1 голос
/ 03 января 2012

Это кодировка передачи по частям http://en.wikipedia.org/wiki/Chunked_transfer_encoding

Вы можете отправить запрос в http 1.0 вместо 1.1, чтобы избежать этого, или вы можете легко его декодировать (отметьте это http://en.wikipedia.org/wiki/Chunked_transfer_encoding#Example), действительно легко декодировать,

Или используйте php-curl, он автоматически расшифрует ответ за вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...