Как сделать POST запрос к сервису dadata ru

Тема в разделе "Формирование GET и POST-запросов", создана пользователем dexperanto, 15 дек 2017.

Метки:
  1. dexperanto

    dexperanto New Member Пользователи

    Регистрация:
    21 ноя 2014
    Сообщения:
    123
    День добрый.
    Нашёл сервис, который по инн выдает контакты.
    Ссылки недоступны для гостей
    rest-метод:
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Token 57b350b7c0ab1c1bdcd36ec084cc0eb7f81aaab4" \
    -d '{ "query": "сбербанк" }' \
    Ссылки недоступны для гостей
    Укажите при вызове:

    • Content-Type: application/json или application/xml.
    • Accept — аналогично.
    • 57b350b7c0ab1c1bdcd36ec084cc0eb7f81aaab4 — API-ключ.
    • Тело запроса передавайте в кодировке UTF-8
    Как сформировать запрос?
    Не могу понять.
    ключ: 57b350b7c0ab1c1bdcd36ec084cc0eb7f81aaab4

    несколько инн для теста:
    5902142235
    3662172494
    7714028300
    2225091346
    7704012372
    7723529060
    4345329925
    1901077579
    9204547550
    3443130685
    6950207004
    3906257120
    3904047262
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Заполнил все данные, но почему-то, по непонятным мне причинам, сервис отдает ошибку:
    2017-12-16_15-13-37.png
     
  3. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Постараюсь к завтрашнему вечеру сделать это посредством подключения PHP скрипта.
     
  4. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    В PHP не силен.

    Сделать запрос к этому сервису не вышло. Вот, может вам поможет:
    PHP:
    <?php

    $url 
    'https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party';
    $fields = array(
        
    'query' => urlencode('сбербанк')
    );

    //url-ify the data for the POST
    foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
    rtrim($fields_string'&');

    $ch curl_init();
    echo (
    "123");

    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_HEADERtrue);
    curl_setopt($ch,CURLOPT_POSTcount($fields));
    curl_setopt($ch,CURLOPT_POSTFIELDS$fields_string);
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue); // Must be set to true so that PHP follows any "Location:" header
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($chCURLOPT_HTTPHEADER, array(
        
    'Content-Type: application/json',
        
    'Accept: application/json',
        
    'Authorization: Token 57b350b7c0ab1c1bdcd36ec084cc0eb7f81aaab4'
        
    ));

    $a curl_exec($ch); // $a will contain all headers


    print_r($a);

    ?>
     
  5. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    там с сервисом походу что-то. Он помоему не работает, тоже пробовал.
     
  6. ltt

    ltt Member Пользователи

    Регистрация:
    21 дек 2016
    Сообщения:
    112
    В принципе сервис работает, у меня в другой программе вот с такими данными:

    Ссылки недоступны для гостей - возвращает массив как нужно.

    Однако сейчас пытаюсь провернуть это дело на CD - тоже возвращает "Программе не удалось загрузить WEB-страницу (Socket Error # 0 )"
     
  7. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Постараюсь доработать функцию отправки POST в программе в течение недели.
     
    ltt нравится это.
  8. ltt

    ltt Member Пользователи

    Регистрация:
    21 дек 2016
    Сообщения:
    112
    Ну уж не к спеху, праздники все-же)
    С Наступающим!
     
  9. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Я сделал возможность отправки POST-запроса с использованием библиотеки Clever Internet Suite. Теперь проблем с HTTPS не испытываем.

    Но, почему-то, в создании запроса к указанному в теме сервису получаем ошибку:
    2018-02-06_16-56-36.png
     

    Вложения:

  10. ltt

    ltt Member Пользователи

    Регистрация:
    21 дек 2016
    Сообщения:
    112
    Спасибо за доработку, Сергей! Такая ошибка возникала в других системах в ответ на этот сервис. не помню точно что там было, он требователен к данным, нужно скорее всего поменять представление запроса, или заголовок. Посмотрю вскоре. Но теперь кардинальных проблем быть не должно
     
    Root нравится это.
  11. Dandrei

    Dandrei Member Пользователи

    Регистрация:
    4 ноя 2017
    Сообщения:
    41
    Доброго времени.
    Скажите, есть возможность реанимировать эту тему с дадатой?
    Ресурс вполне рабочий и хотелось бы данные брать у них.

    Попробовал использовать ваш проект - но он и сейчас выдает ошибку.
    При этом заходил по странице Ссылки недоступны для гостей - она сейчас у них актуальна.
    Не посмотрите - где в проекте может быть ошибка?
    Само описание их api вот тут Ссылки недоступны для гостей
    Извините, если это слишком наглая просьба)))

    Если что, рабочий токен - 06109292a772d24b35f97b3ba28d761435dbd3e5
     
  12. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Исходя из их же инструкции, данные к их ресурсу теперь должны отправляться в формате JSON.

    2020-11-30_06-44-01.png
     
    kagorec нравится это.
  13. Dandrei

    Dandrei Member Пользователи

    Регистрация:
    4 ноя 2017
    Сообщения:
    41
    Все работает, спасибо!!!
     
    Root нравится это.

Поделиться этой страницей