如何在PHP Laravel中将数据发送到API?

时间:2016-12-15 01:29:51

标签: php json laravel

我是Laravel框架的新手,所以我很难做一些非常微不足道的事情。主要想法是联系API并获得其响应。下面是我的函数,我有错误,

public function verification($id=null){
        try{
             $res = $client->createRequest('POST','http://35.161.181.102/api/socialverify/linkedin',['headers' => $headers , 'body' => $urlclean]);  
             $res= $client->send($res);  
         }catch(\GuzzleHttp\Exception\RequestException $e) {
             \Log::info($e->getMessage());
             \Log::info($e->getCode());
             \Log::info($e->getResponse()->getBody()->getContents());
         }
    }

当我运行上述功能时,我收到如下所示的错误,

Illegal string offset 'id'

关于我做错了什么以及如何解决它的任何指示。

感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您在/storage/logs/laravel.log中看到了什么?

我认为ClientGuzzle Client,默认情况下,只要有请求问题,Guzzle就会抛出RequestExceptionSee Documentation。那么为什么不尝试这样做,看看Guzzle回答的错误是什么:

try {
    $response = $client->post('http://link-to-my-api', array(
        'headers' => array('Content-type' => 'application/json'),
        'body' => $data
    ));
    $response->send(); 
}catch(\GuzzleHttp\Exception\RequestException $e) {
    \Log::info($e->getMessage());
    \Log::info($e->getCode());
    \Log::info($e->getResponse()->getBody()->getContents());
}

并检查您的/storage/logs/laravel.log以查看正在打印的日志。