Использование Ozon Seller API на Дельфи с synapse

Рейтинг: 0Ответов: 1Опубликовано: 23.06.2023
function doSellerAPI (client_id: string; api_key: string; var resultCode: integer;
  res: TStrings): boolean;
var
  http: THTTPSend;
begin
  http := THTTPSend.Create;
  try
    http.Protocol := '1.1';
    http.AddPortNumberToHost := false;
    http.UserAgent := '';
    http.KeepAlive := false;

    http.Headers.Add('Client-Id: ' + client_id);
    http.Headers.Add('Api-Key: ' + api_key);
    http.Headers.Add('Content-Type: application/json');

    Result := http.HTTPMethod('GET','https://api-seller.ozon.ru/v2/product/info');
    resultCode := http.ResultCode;
    res.LoadFromStream(http.Document);
  finally
    http.Free;
  end;
end;

Возвращает код 405. Модули ssl_openssl, ssl_openssl_lib подключены в uses.

Использовал POST вместо GET и, вроде, заработало, несмотря на то, что документации на сайте по адресу https://docs.ozon.ru/api/seller/#section/Chto-takoe-rabochaya-sreda написано:

GET / HTTP/1.1
Host: api-seller.ozon.ru
Client-Id: <Client-Id>
Api-Key: <Api-Key>
Content-Type: application/json

Ответы

▲ 1Принят

Ошибка заключалась в использовании метода GET вместо метода POST. При этом json надо передавать в теле запроса.