Я вызываю API NameCheap, и они возвращают ответ XML.

При попытке вывести это, я получаю ответ NULL.

Нажав тот же API, но с POSTMAN расширения Google, я получаю те результаты, которые мне нужны, я что-то делаю не так с ответом?

public function testCheck($domains){

        $client = new Client();

        $res = $client->request('GET', 'https://api.namecheap.com/xml.response?ApiUser=(username)&ApiKey=(apikey)&UserName(username)&ClientIp=(ip)&Command=namecheap.domains.check&DomainList=' . $domains);

        $data = json_decode($res->getBody());

        dd($data);

    }

Я вернусь

null
3
Dev.W 5 Сен 2016 в 15:27

2 ответа

Вы говорите, что они возвращают XML, но вы пытаетесь проанализировать его как JSON, который получит значение null.

Сохраните тело в переменной и dd(), которое вместо отправки в json_decode() для подтверждения, является XML и что вы получаете ответ.

После этого рассмотрите возможность использования анализатора XML, такого как SimpleXml http://php.net/manual/en/ book.simplexml.php

0
Nestor Mata Cuthbert 5 Сен 2016 в 15:20

Попробуй это

$res = $client->request('GET', 'https://api.namecheap.com/xml.response?ApiUser=(username)&ApiKey=(apikey)&UserName(username)&ClientIp=(ip)&Command=namecheap.domains.check&DomainList=' . $domains)->send()->json();
0
Roshan Perera 5 Сен 2016 в 16:29