2016-09-06 3 views
1

Alert Я видел, как некоторые люди спрашивали, но обычно о CURL, я прошу отправить его через WinSock2.C++ | Winsock - Правильный способ записи HTTP-сообщения для загрузки файла?

Хорошо, поэтому я знаю, как легко делать заявления POST и GET (POST с помощью приложения/приложения/x-www-form-urlencoded), но я не уверен, как использовать multipart/form-data, я знаю это имеет какое-то отношение к границе, чтобы указать, когда вы закончите отправку данных.

Но какова должна быть базовая HTTP POST для загрузки файлов? (Также вы можете загрузить на PHP POSTBACK? Если это было приложение/x-www-form-urlencoded, я мог видеть это как filename = hello.png & data = ...)

Что-то вроде этого формата: (Это все, что я знаю о посылке данных). Я не могу найти надежный пример онлайн, поэтому задаю вопрос.

POST /postback.php HTTP/1.1 
HOST: www.website.com 
Content-Type: multipart/form-data; boundary=----IAmABoundary 
Content-Length: 300 

------IAmABoundary 
Send Binary Data? 
------IAmABoundary-- 

ответ

0

Используйте стельку, чтобы захватить загрузки файла, то вы можете увидеть фактический формат, ваш пример выше, более или менее прямо, как я помню. Вот еще более полный ответ с хорошим примером: Example of multipart/form-data

0

HTTP-сообщения - сообщения MIME. Это довольно сложный формат кодирования.

Начать чтение RFC 2045. Это базовая спецификация для MIME.

Затем перейдите к RFC 2046. В разделе 5 RFC 2046 излагается спецификация сообщений multipart MIME, которая используется для формата multipart/form-data, который вы видите.

Это много материала для чтения, правда. Но совершенно необходимо полностью понять сообщения в формате MIME, чтобы иметь любую надежду понять, как работают загрузки файлов.

0

если вы хотите отправить содержимое файла на самом деле вы можете просто поместить содержимое файла в после заголовков HTTP, и установить тип содержимого и содержимого длины

многочастному/форм-данных используется HTML-форм для отправки/отправки формы, у которой есть файл в своем поле, они разделяли части/поля с помощью многострочной границы

Смежные вопросы