Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / знаки вопроса при отправке POST / 11 сообщений из 11, страница 1 из 1
27.10.2020, 19:36
    #40012335
Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
знаки вопроса при отправке POST
не могу сделать правильную кодировку
прошу помощи
Delphi 7 Indy 10
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
procedure TForm1.Button1Click(Sender: TObject);
var
    IdHTTP1: TIdHTTP;
    StringStream: TStringStream;
    res: ansistring;
begin
    IdHTTP1 := TIdHTTP.Create;
    StringStream := TStringStream.Create('');

    try
        IdHTTP1.HTTPOptions := [hoKeepOrigProtocol,hoForceEncodeParams,hoNoProtocolErrorException,hoWantProtocolErrorContent];
        IdHTTP1.Request.ContentEncoding := 'UTF-8';
        IdHTTP1.Request.ContentType := 'application/json';
        IdHTTP1.Request.Accept := 'application/json';
        IdHTTP1.Request.CustomHeaders.Add('Authorization: Token 39f047b40abafb4b247f0afcf4298c52a20f9243');
        StringStream.WriteString('{ "query": "7707083893" }');
        res := IdHTTP1.Post('https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party', StringStream);
        Memo1.Text := res;
    finally
        StringStream.Free;
        IdHTTP1.Free;
    end;
end;
...
Рейтинг: 0 / 0
27.10.2020, 19:44
    #40012337
Cobalt747
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
знаки вопроса при отправке POST
Петр,

почему ты думаешь что тут проблема в кодировке?
И в твоем примере - только латиница
...
Рейтинг: 0 / 0
27.10.2020, 19:45
    #40012338
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
знаки вопроса при отправке POST
...
Рейтинг: 0 / 0
27.10.2020, 19:47
    #40012339
Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
знаки вопроса при отправке POST
проблема не в входных параметрах а в результате
Код: sql
1.
{"suggestions":[{"value":"??? ????????","unrestricted_value":"??? ????????","data":{"kpp":"773601001","capital":null,"management":{"name":"???? ?????? ?????????","post":"?????????, ???????????? ?????????","disqualified":null},"founders":null,"managers":null,"branch_type":"MAIN","branch_count":88,"source":null,"qc":null,"hid":"588a141bc5e17cbc976ec2d0d54149af49d5a4ca16e26ed2effafdf06841d645","type":"LEGAL","state":{"status":"ACTIVE","actuality_date":1601942400000,"registration_date":677376000000,"liquidation_date":null},"opf":



код рабочий можно запустить самому
...
Рейтинг: 0 / 0
27.10.2020, 19:50
    #40012340
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
знаки вопроса при отправке POST
Петрпроблема не в входных параметрах а в результате

Тот кретин, чей код ты скопипастил, использовал AnsiString для res. Исправь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.10.2020, 19:53
    #40012342
Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
знаки вопроса при отправке POST
Dimitry Sibiryakov

Петрпроблема не в входных параметрах а в результате

Тот кретин, чей код ты скопипастил, использовал AnsiString для res. Исправь.


без разницы
...
Рейтинг: 0 / 0
27.10.2020, 19:56
    #40012344
Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
знаки вопроса при отправке POST


http://docwiki.embarcadero.com/CodeExamples/Sydney/en/TEncoding_(Delphi)

что-то я не въеду как для StringStream это использовать
...
Рейтинг: 0 / 0
27.10.2020, 20:03
    #40012345
Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
знаки вопроса при отправке POST
все вспомнил как делал вот рабочий код
Код: 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.
procedure TForm1.Button3Click(Sender: TObject);
var
    IdHTTP1: TIdHTTP;
    StringStream: TStringStream;
    res: string;
begin
    IdHTTP1 := TIdHTTP.Create;
    StringStream := TStringStream.Create('');

    try
        IdHTTP1.HTTPOptions := [hoKeepOrigProtocol,hoForceEncodeParams,hoNoProtocolErrorException,hoWantProtocolErrorContent];
        IdHTTP1.Request.ContentEncoding := 'UTF-8';
        IdHTTP1.Request.ContentType := 'application/json';
        IdHTTP1.Request.Accept := 'application/json';
        IdHTTP1.Request.CustomHeaders.Add('Authorization: Token 39f047b40abafb4b247f0afcf4298c52a20f9243');
        StringStream.WriteString('{ "query": "7707083893" }');
        res := Utf8ToAnsi(IdHTTP1.Post('https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/party', StringStream, IndyTextEncoding_UTF8));
        Memo1.Text := res;
    finally
        StringStream.Free;
        IdHTTP1.Free;
    end;

end;
...
Рейтинг: 0 / 0
27.10.2020, 20:04
    #40012346
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
знаки вопроса при отправке POST
Петрбез разницы

Значит или неправильно исправил, или проблема глубже. Смотри отправляемые заголовки,
принимаемые заголовки, реально принимаемые данные.
http://www.nirsoft.net/utils/socket_sniffer.html тебе в руки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.10.2020, 20:05
    #40012349
Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
знаки вопроса при отправке POST


Дмитрий, спасибо за пинок в нужном направлении :)
...
Рейтинг: 0 / 0
29.10.2020, 12:45
    #40013007
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
знаки вопроса при отправке POST
офф: также подобная проблема в отправке писем через ИНДИ.
Запаришься, пока кодировки станут на место и в любом почтовике.

Н-р помню, добавил в письмо вложение и сразу сломалась кодировка в заголовке письма.
И структура письма (внутренние кишки) не так проста, как может показаться (м.б. куча секций со своими настройками).
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / знаки вопроса при отправке POST / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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