powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кодировка в TidHTTP.AddObject
8 сообщений из 8, страница 1 из 1
Кодировка в TidHTTP.AddObject
    #39541751
Двоичник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имею фрагмент кода, написанный на D7
работает все успешно, где я использую Indy 9.00.10
Фрагмент кода для TidHTTP


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
  FormData := TIdMultiPartFormDataStream.Create;
    try
      FormData.AddFormField('MetaXml', CompileXML);
      for j:= 1 to k do
      begin
          ArrayScan[j].position := 0;
          FormData.AddObject('image','image/jpeg', ArrayImage[j], ArrayName[j]);
      end;



Где позднее я передаю в веб-сервис
Код: pascal
1.
2.
          Response := idHTTP.Post(sLinkServiceHTTP, FormData);
          iResponseCode := IdHTTP.ResponseCode;



Фокус весь в том, что на Delphi XE3 (Indy 10.5.9.0 ) метод AddObject работает иначе, появился еще один параметр кодировки
Код: pascal
1.
2.
public function AddObject(const AFieldName: string; const AContentType: string; const ACharset: string;
                          AFileData: TObject; const AFileName: string = ''): TIdFormDataField; deprecated;



И тогда я делаю так
Код: pascal
1.
FormData.AddObject('image','image/jpeg', '', ArrayImage[j], ArrayName[j]);


и справедливо, перестало работать.

Вопрос: Как сделать так, чтобы работало?
Спасибо
...
Рейтинг: 0 / 0
Кодировка в TidHTTP.AddObject
    #39541757
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДвоичникКак сделать так, чтобы работало?
Указать кодировку не предлагать?
...
Рейтинг: 0 / 0
Кодировка в TidHTTP.AddObject
    #39541772
Двоичник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanДвоичникКак сделать так, чтобы работало?
Указать кодировку не предлагать?
Я пробовал
UTF-8, Win-1251, Windows-1251, KOI-R
не помогло
...
Рейтинг: 0 / 0
Кодировка в TidHTTP.AddObject
    #39542018
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДвоичникВопрос: Как сделать так, чтобы работало?

Вы забыли написать текст ошибки.
Откуда нам знать, что такое "не работает"? Как это проявляется?
Не компилирует?
...
Рейтинг: 0 / 0
Кодировка в TidHTTP.AddObject
    #39542295
Двоичник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11ДвоичникВопрос: Как сделать так, чтобы работало?

Вы забыли написать текст ошибки.
Откуда нам знать, что такое "не работает"? Как это проявляется?
Не компилирует?

Компилируется, нормально. А вот работает, как не работает

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        try
[color=red]          Response := idHTTP.Post(sLinkServiceHTTP, FormData);[/color]
          iResponseCode := IdHTTP.ResponseCode;
        except
        on E: Exception do
          begin
            iResponseCode := IdHTTP.ResponseCode;
            MessageDlg(PAnsiChar(IntToStr(iResponseCode) + ': В процессе сохранения изображений на сервере произошла ошибка.'), mtError, [mbOK], 0);
          end;
        end;
        finally
          FormData.Free;
        end;



И вот Post не отрабатывает, как это работает на D7

На Delphi XE3 получаю это:
автор---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EIdHTTPProtocolException with message 'HTTP/1.1 400 Bad Request'.
---------------------------
Break Continue Help
---------------------------


iResponseCode = 4

Я повторюсь, что на Delphi7 все работает, отличие только в методе
Код: pascal
1.
FormData.AddObject('image','image/jpeg', ArrayImage[j], ArrayName[j]);


против
Код: pascal
1.
FormData.AddObject('image','image/jpeg', '', ArrayImage[j], ArrayName[j]);
...
Рейтинг: 0 / 0
Кодировка в TidHTTP.AddObject
    #39543922
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме кодировки ещё есть свойство Request
...
Рейтинг: 0 / 0
Кодировка в TidHTTP.AddObject
    #39614266
coolmarat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Двоичник, подскажите, удалось ли Вам разобраться с проблемой? Возникла аналогичная
...
Рейтинг: 0 / 0
Кодировка в TidHTTP.AddObject
    #39614560
Двоичник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
    FormData := TIdMultiPartFormDataStream.Create;
    try
     FormData.AddFormField('MetaXml', CompileXML, 'utf-8', 'text/xml').ContentTransfer := '8bit';
      for j:= 1 to k do
      begin
          ArrayScan[j].position := 0;
          FormData.AddObject('image','image/jpeg', '', ArrayScan[j], ArrayName[j]);
      end;
        try
          Response := idHTTP.Post(sLinkServiceHTTP, FormData);
          iResponseCode := IdHTTP.ResponseCode;
        except
        on E: Exception do
          begin
            iResponseCode := IdHTTP.ResponseCode;
            MessageDlg(PAnsiChar(IntToStr(iResponseCode) + ': Ошибка!'), mtError, [mbOK], 0);
            btnSendZ.Enabled := true;
          end;
        end;
        finally
          FormData.Free;
        end;

      if iResponseCode = 200 then
      begin
       MessageDlg('OK!', mtInformation, [mbOK], 0);
       ModalResult := mrOK;
      end;
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кодировка в TidHTTP.AddObject
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]