![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Появляются лишние символы при отправке TIdMultiPartFormDataStream
mfender © (2013-08-06 18:22:00)Отправляю JSON в некотором поле:
.....
MP := TIdMultiPartFormDataStream.Create;
J := TJSONObject.Create;
Mar := TJSONMarshal.Create(TJSONConverter.Create);
try
J := Mar.Marshal(P) as TJSONObject;
showmessage(J.ToString);
MP.AddFormField('JSON', J.ToString, 'utf-8');
Memo1.Lines.Add(IdHTTP1.Post(_st.RemoteUrl, MP));
finally
.....
Уходит нормально всё. На сервер приезжает строка, побитая после каждого 70-го байта таким странным набором символов: =\r\n(\0x3d\0x0d\0x0a).
Что к чему? Как избавиться?
mfender (2013-08-06 22:22:00) [1]Покурил маленько всемирный разум. Узнал про quoted-printable. Оказалось, что избавиться от этих переводов строк можно указав соответствующий ситуации Content-Transfer-Encoding. В данном случае это оказался 8bit.
MP.AddFormField('JSON', J.ToString, 'utf-8').ContentTransfer := '8bit';
P.S. У меня дежа-вю... Кажется я уже задавался этим вопросом...
Обычный Порошок (2013-08-06 20:50:00) [2]Как избавиться?
Как избавиться от TIdMultiPartFormDataStream?
Или как избавиться от TidHTTP?
Ole object.
xmlhttprequest.
и будет все нативно, а не через индёвый анус
mfender (2013-08-06 19:00:00) [3]Поясню. Я отправляю вот такую строку:
{"type":"class_Protocol.TAgregatorProtocol","id":1,"fields":{"FRemoteController" :"","FRemoteMethod":"","FData":{"type":"System.TObject","id":2,"fields":{}},"FLo g":null}}
А получаю вот такую беду:
{"type":"class_Protocol.TAgregatorProtocol","id":1,"fields":{"FRemoteC=
ontroller":"","FRemoteMethod":"","FData":{"type":"System.TObject","id"=
:2,"fields":{}},"FLog":null}}
mfender (2013-08-06 18:58:00) [4]И на кой он мне нужен? Мне JSON нужен, а в таком виде его ни один JSON-парсер не вразумляет.
брат Птибурдукова (2013-08-06 18:45:00) [5]А что в ней странного? Банальный перевод строки в виндовом стиле.