Это относится к сообщению this. Я пытаюсь отправить некоторые данные формы с использованием TIdHTTP
и TIdMultiPartFormDataStream
, но при мониторинге связи с использованием Wireshark, каждое поле формы получает content-Type: text/plain
прилагается к нему и по какой-то причине сервера, что я представляемая эти вещи, чтобы не нравится Это. Есть ли способ, которым я могу убедиться, что отправлено только имя и значение? был также добавлен Content-Transfer, и я был в состоянии удалить, что с помощью:, изгоняя «контент-тип» из TIdMultiPartFormDataStream
aFieldItem := PostStream.AddFormField(fName, fValue);
aFieldItem.ContentTransfer := '';
, но я не могу найти способ, чтобы избавиться от типа контента. На данный момент данных, отправляемое lõoke как это (в Wireshark)
Boundary: \r\n----------051715151353026\r\n
Encapsulated multipart part: (text/plain)
Content-Disposition: form-data; name="description"\r\n
Content-Type: text/plain\r\n
Line-based text data: text/plain
\r\n
Testing new AW Mobile
и я хочу, чтобы это выглядело как:
Boundary: \r\n------WebKitFormBoundary32hCBG8zkGMBpxqL\r\n
Encapsulated multipart part:
Content-Disposition: form-data; name="description"\r\n
Data (21 bytes)
Data: 0d0a5465737420616e6420747261636520636f6d6d
Length: 21
Спасибо Сэм
Спасибо. Любое предложение относительно того, как я могу справиться с этим в то же время? – Sam
Как я уже сказал, вам придется изменить исходный код TIdMultipartFormDataStream, а затем перекомпилировать Indy. Кроме того, скопируйте исходный код в новый модуль/класс в своем проекте, который затем можно изменить по мере необходимости.Или просто напишите свои собственные данные MIME в стандартный TStream, такой как TMemoryStream. У меня нет ETA, когда новый TIdMultipartFormDataStream будет готов к выпуску. –
Третий вариант (MIME-данные в стандартный TStream, такие как TMemoryStream) звучит лучше всего. У вас есть пример этого? Мне нужно опубликовать кучу пар имя-значение и файл и конец. Спасибо – Sam