За последние 24 часа нас посетили 62011 программистов и 1591 робот. Сейчас ищут 998 программистов ...

Rest api клиент на php

Тема в разделе "PHP для профи", создана пользователем korkibulkin, 22 мар 2018.

Метки:
  1. korkibulkin

    korkibulkin Новичок

    С нами с:
    22 мар 2018
    Сообщения:
    2
    Симпатии:
    0
    Друзья, появилась необходимость вытаскивать из виртуальной АТС список звонков клиентов.
    Оператор связи предоставляет такую возможность по rest api.
    Нашел кусок кода, который отлично работает, но есть одно НО - результат запроса возвращается не как json, а как просто строка, в которой все значения идут через запятую.
    Понять, что есть что в результате довольно затруднительно, названий параметров нет. Хотя в документации оператора связи написано, что названия параметров должны быть.
    И в примере, из которого брал код, ответ был в json, с названиями параметров.
    В техподдержку оператора звонил - мычат что-то нечленораздельное, говорят спецов по rest api у них нет.
    Подскажите пожалуйста как модифицировать этот код, чтобы ответ на выходе был в json?

    PHP:
    1. $data = array("token" => "токен", "cmd" => "history", "period" => "this_month");                                            
    2. $json = json_encode($data);                                                                                
    3. $ch = curl_init();
    4. curl_setopt($ch, CURLOPT_URL, 'адрес')
    5. curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    6. curl_setopt($ch,CURLOPT_POST,'POST');
    7. curl_setopt($ch,CURLOPT_POSTFIELDS, $json);
    8. curl_setopt($ch,CURLOPT_HTTPHEADER,array(
    9. 'Content-Type: application/x-www-form-urlencoded',
    10. ));
    11. $res = curl_exec($ch);
    12. var_dump($res);
    Сейчас на выходе такое:
    string(287) "23423432,in,32423432,dfdsfsdfdsfdsfdsf,gfh555ggg,2018-03-16T09:30:12+03:00,23"
     
    #1 korkibulkin, 22 мар 2018
    Последнее редактирование модератором: 23 мар 2018
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.815
    Симпатии:
    1.332
    Адрес:
    Лень
    PHP:
    1. var_dump ( json_encode ( 'JSON' ) );
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    $arr = explode(',', $str);
     
    korkibulkin нравится это.
  4. korkibulkin

    korkibulkin Новичок

    С нами с:
    22 мар 2018
    Сообщения:
    2
    Симпатии:
    0
    Отличный вариант, спасибо! (и че я сам не догадался... :) )