Как подключиться к Suite CRM REST API с помощью Guzzle

Я пытаюсь подключиться к пакету CRM REST API с помощью Guzzle

   $res = $client->request('GET','http://crm.demo.com/service/v4_1/rest.php/login', [   "auth" => [ 'myadmin', md5('mypswd') ]]);

    print_r($res);

Результат, который я получаю, таков

GuzzleHttp\Psr7\Response Object
(
[reasonPhrase:GuzzleHttp\Psr7\Response:private] => OK
[statusCode:GuzzleHttp\Psr7\Response:private] => 200
[headers:GuzzleHttp\Psr7\Response:private] => Array
    (
        [Date] => Array
            (
                [0] => Mon, 03 Apr 2017 06:26:17 GMT
            )

        [Content-Type] => Array
            (
                [0] => text/html; charset=UTF-8
            )

        [Transfer-Encoding] => Array
            (
                [0] => chunked
            )

        [Connection] => Array
            (
                [0] => keep-alive
            )

        [Set-Cookie] => Array
            (
                [0] => __cfduid=daace974785b1e202e7535232346958d111491200776; expires=Tue, 03-Apr-18 06:26:16 GMT; path=/; domain=.demo.com; HttpOnly
            )

        [X-Powered-By] => Array
            (
                [0] => PHP/5.4.16
            )

        [X-Varnish] => Array
            (
                [0] => 2592144
            )

        [Age] => Array
            (
                [0] => 0
            )

        [Via] => Array
            (
                [0] => 1.1 varnish-v4
            )

        [Server] => Array
            (
                [0] => cloudflare-nginx
            )

        [CF-RAY] => Array
            (
                [0] => 3499f497d6bd17a4-SIN
            )

    )

[headerNames:GuzzleHttp\Psr7\Response:private] => Array
    (
        [date] => Date
        [content-type] => Content-Type
        [transfer-encoding] => Transfer-Encoding
        [connection] => Connection
        [set-cookie] => Set-Cookie
        [x-powered-by] => X-Powered-By
        [x-varnish] => X-Varnish
        [age] => Age
        [via] => Via
        [server] => Server
        [cf-ray] => CF-RAY
    )

[protocol:GuzzleHttp\Psr7\Response:private] => 1.1
[stream:GuzzleHttp\Psr7\Response:private] => GuzzleHttp\Psr7\Stream Object
    (
        [stream:GuzzleHttp\Psr7\Stream:private] => Resource id #73
        [size:GuzzleHttp\Psr7\Stream:private] => 
        [seekable:GuzzleHttp\Psr7\Stream:private] => 1
        [readable:GuzzleHttp\Psr7\Stream:private] => 1
        [writable:GuzzleHttp\Psr7\Stream:private] => 1
        [uri:GuzzleHttp\Psr7\Stream:private] => php://temp
        [customMetadata:GuzzleHttp\Psr7\Stream:private] => Array
            (
            )

    )

 )

Он показывает, что запрос был успешным, но я не получаю результата. Реально ли подключить с помощью Guzzle? Есть ли другой способ передать параметры входа в систему?

Для этого я использую CodeIgniter 3 и Guzzle.


person AVM    schedule 03.04.2017    source источник


Ответы (1)


Прежде всего, в чем проблема? Ваш код правильный, вы получите ответ.

Если вы хотите изучить тело ответа, просто выполните (string) $res->getBody() или $res->getBody()->getContents() (тело представляет собой поток, как вы можете в своем дампе, поэтому, чтобы получить его в виде строки, вам нужно выполнить дополнительные действия).

Кстати, вы пытаетесь получить доступ к сайту в CloudFlare, и обычно это невозможно, потому что CloudFlare отвергает robots. Попробуйте получить другую точку входа (которая не находится под защитой CloudFlare).

person Alexey Shokov    schedule 04.04.2017
comment
Спасибо @Alexey Shockov за указание на проблему с облачными вспышками. Я немного запутался в ответе. Теперь он работает. - person AVM; 04.04.2017