Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi + Yandex.Direct (HTTPS , POST, JSON) / 20 сообщений из 20, страница 1 из 1
24.10.2013, 15:37
    #38440081
Radiance
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
Доброго времени суток!

Требуется установить защищенное соединение с проверкой сертификатов и шифрованием для отправки яндекс.директу POST запросов в формате JSON.


Запросы имеют подобный вид:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
POST /json-api/v4/ HTTP/1.1
Host: api.direct.yandex.ru
Content-Length: 76
Content-Type: application/json; charset=utf-8

{
    "method": "GetClientInfo",
    "param": ["agrom"],
    "locale": "ru"
}




Прошу знающих людей помочь с реализацией. Гуглил, искал в куче тем, пробовал несколько дней - решения так и нет. За работающий код готов заплатить.

Windows 7 64bit , Delphi 7 (или Delphi XE4)
...
Рейтинг: 0 / 0
24.10.2013, 15:43
    #38440095
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
...
Рейтинг: 0 / 0
24.10.2013, 16:26
    #38440176
Radiance
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
Спасибо за подсказку по поводу SuperObject , однако остаётся проблема с установкой SSL соединения с яндексом и отправкой POST запроса.

Пробовал использовать и Indy последних версий и Synapse - ничего не получается.


Есть у кого-нибудь работающий код?
...
Рейтинг: 0 / 0
24.10.2013, 16:34
    #38440193
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
Radiance, у гугла. да у скульрушного поиска тоже
...
Рейтинг: 0 / 0
24.10.2013, 16:39
    #38440200
Radiance
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
Если бы он там был и в моей ситуации работал, я бы не писал тему новую. Я два дня уже в этих поисках роюсь.
...
Рейтинг: 0 / 0
24.10.2013, 16:45
    #38440213
j2me
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
Яндекс.Диск + WinHTTP + https:// + WebDAV = работает
...
Рейтинг: 0 / 0
24.10.2013, 17:19
    #38440257
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
RadianceСпасибо за подсказку по поводу SuperObject , однако остаётся проблема с установкой SSL соединения с яндексом и отправкой POST запроса.

Пробовал использовать и Indy последних версий и Synapse - ничего не получается.


Есть у кого-нибудь работающий код?

Так и написано в тексте ошибки: "Не получается"
...
Рейтинг: 0 / 0
24.10.2013, 17:20
    #38440261
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
и все сразу достали свои хрустальные шары и начали отгадывать, что именно и как ты там что отправлял и подключал, что использовал, какие компоненты и dll
...
Рейтинг: 0 / 0
24.10.2013, 17:21
    #38440265
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
youtube.com/watch?v=0WXljJoFmqQ !!!
...
Рейтинг: 0 / 0
24.10.2013, 17:28
    #38440279
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
Radiance...Пробовал использовать и Indy последних версий и Synapse - ничего не получается...
Нужно пробовать не менее трех раз.
...
Рейтинг: 0 / 0
24.10.2013, 17:56
    #38440335
Radiance
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdIOHandler,
  IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
PostData:TStringList;
html:WideString;
begin
try
PostData:=TStringList.Create;
PostData.Clear;
PostData.Add(Utf8Encode('"method" : "GetClientInfo"'));
PostData.Add(Utf8Encode('"param":"spit-malish",'));
PostData.Add(Utf8Encode('"locale":"ru"'));
PostData.Add(Utf8Encode('"login":"spit-malish",'));
PostData.Add(Utf8Encode('"application_id":"тут_код_моего_приложения"'));
PostData.Add(Utf8Encode('"token":"тут_токен_моего_приложения"'));
IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IdSSLIOHandlerSocketOpenSSL1.Destination := IdHTTP1.Request.Host;
IdSSLIOHandlerSocketOpenSSL1.Host := IdHTTP1.Request.Host;
IdSSLIOHandlerSocketOpenSSL1.Port := 443;
IdSSLIOHandlerSocketOpenSSL1.DefaultPort := 0;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv2;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned;
IdHTTP1.Connect;
if IdSSLIOHandlerSocketOpenSSL1.Connected then Showmessage('connected');

IdHTTP1.Request.ContentLength:=PostData.Count;
IdHTTP1.Post('https://api.direct.yandex.ru/v4/json',PostData);
PostData.Free;
except
on e:Exception do
PostData.Free;
end;
Memo1.Text:=IdHTTP1.Response.ResponseText;
end;

end.




Вот этот код не работает (ничего не происходит и не отправляется, если отправку производить на https. на http работает).

Компоненту IdSSLIOHandlerSocketOpenSSL1 заданы корректные файлы ключа и сертификата.

Delphi XE4
...
Рейтинг: 0 / 0
24.10.2013, 17:59
    #38440339
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
Radianceкорректные файлы ключа и сертификата.а что, яндексу они нужны?
...
Рейтинг: 0 / 0
24.10.2013, 18:04
    #38440349
Radiance
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
fd00ch, да, нужны, если верить документации директа.

Цитата: "Для установки SSL-соединения необходимы файлы cert.crt и private.key"

http://api.yandex.ru/direct/doc/concepts/auth-cert.xml
...
Рейтинг: 0 / 0
24.10.2013, 18:14
    #38440359
Radiance
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
Вопрос остается открытым. Тому кто предложит работающий код для установки SSL соединения и передачи POST - запросов обещаю премию не менее 1000-1500 рублей (точный размер зависит от того, насколько будет удобно при помощи этого кода потом отправлять большие json запросы).

Премию перечислю на мобильный, либо иным электронным переводом. Моя почта el-radiance@bk.ru. Если вопрос будет закрыт - отпишусь здесь.
...
Рейтинг: 0 / 0
25.10.2013, 00:17
    #38440587
Radiance
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
Решение найдено, спасибо fd00ch
...
Рейтинг: 0 / 0
25.10.2013, 02:42
    #38440617
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
всегда пожалуйста))
...
Рейтинг: 0 / 0
28.03.2014, 13:50
    #38599145
iant71
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
Ну если не трудно, может и нам скажете о решение?
Спасибо
...
Рейтинг: 0 / 0
28.03.2014, 14:06
    #38599170
figli
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
провангую - не было доступных для приложения libeay и ssleay
...
Рейтинг: 0 / 0
31.03.2014, 17:20
    #38601154
iant71
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
figliпровангую - не было доступных для приложения libeay и ssleay

Т.е если есть эти dll, то все должно работать? Используем SuperObject или synapse ?

Мне тоже надо отправлять на https запросы " GET ", " POST ", где входные данные должны быть в формате JSON ...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
22.09.2019, 11:20
    #39865181
Mr Robot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi + Yandex.Direct (HTTPS , POST, JSON)
libeay32.dll и ssleay32.dll рядом с программой
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi + Yandex.Direct (HTTPS , POST, JSON) / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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