Отправляемые Заголовки POST, но не полученный на сервере

В C# я работаю над проектом автоматически обновить отдельный сервер с изображением и другими данными формы и таким... Однако сервер PHP не получает ни одних из данных POST, это только получает заголовки, и я не могу выяснить почему.

Вот то, что я отправляю на сервер (все новые строки имеют CRLF):

POST /new_reply/1 HTTP/1.1
Host: 192.168.1.104
User-Agent: Update Bot
Cookie: SID=sib5m5lgaq66vfp2nfhpab6ug0;UID=bot
Content-Type: multipart/form-data; boundary=-----xxx
Content-Length: 1903

-----xxx
Content-Disposition: form-data; name="form_sent"

1
-----xxx
Content-Disposition: form-data; name="name"


-----xxx
Content-Disposition: form-data; name="body"

hej fra mig
-----xxx
Content-Disposition: form-data; name="image"; filename="test.jpg"
Content-Type: image/jpeg

(image data)
-----xxx
Content-Disposition: form-data; name="post"

Post
-----xxx--

Вот изображение с демонстрацией скрытых символов запроса:

Вот PHP print_r $ _REQUEST на странице/new_reply/1:

Array
(
    [reply] => 1
    [SID] => sib5m5lgaq66vfp2nfhpab6ug0
    [UID] => bot
)

Как Вы видите, ни одно из сообщения не проникает...

1
задан SSpoke 13 March 2014 в 21:28
поделиться

1 ответ

Я почти уверен, что граница, указанная в заголовке Content-Type , неверна. Должно получиться примерно следующее:

Content-Type: multipart/form-data; boundary=RANDOM_STRING_BOUNDARY
--RANDOM_STRING_BOUNDARY
Content-Disposition: form-data; name="image_name"

Monkey
--RANDOM_STRING_BOUNDARY
Content-Disposition: form-data; name="photo"; filename="monkey.png"
Content-Type: image/png

[ here would be the png file in binary form ]
--RANDOM_STRING_BOUNDARY--

Как видите, RANDOM_STRING_BOUNDARY не имеет дефисов в начале, если он указан в заголовке Content-Type , только в последующих заголовках, где он фактически используется. Кроме того, последнее использование добавляет два новых дефиса (но вы это уже знали).

2
ответ дан 2 September 2019 в 23:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: