要求API在Postman中工作,但是当我尝试使用laravel / guzzle

时间:2018-03-20 21:51:57

标签: laravel api postman guzzle dingo-api

我制作了一个API,现在我尝试访问该API。 邮差一切都很完美,工作正常:

enter image description here

但是当我用guzzle / laravel尝试相同的代码:

$res3 = $client3->post('https://app.EXAMPLE.com/api/update/'.$serial, [
    'headers' => [
        'Authorization' => 'Bearer '.$res2['token'],
        'Content-Type' => 'application/json'
    ],

    'form_params' => [

      'token' => $res2['token'],
        'bookingdate' => '07/07/2018 12:00 am',
        'notes' => $SpecialRequests
        ]
]);

我得到了:

对象

  

data:debug:class:   “的Symfony \分量\ HttpKernel \异常\ UnauthorizedHttpException”   文件:“/ home / user_name / public_html/vendor/dingo/api/src/Auth/Auth.php”   行:113

什么问题?什么在Postman工作,但不适用于Laravel / Guzzle图书馆?

1 个答案:

答案 0 :(得分:5)

在Postman中,您似乎将令牌作为请求参数发送。在您的代码中,看起来您使用的是form_params,它是application / x-www-form-urlencoded。

试试这个: http://docs.guzzlephp.org/en/stable/quickstart.html#query-string-parameters

$res3 = $client3->post('https://app.EXAMPLE.com/api/update/'.$serial, [ 'headers' => [ 'Authorization' => 'Bearer '.$res2['token'], 'Content-Type' => 'application/json' ], 'query' => [ 'token' => $res2['token'], 'bookingdate' => '07/07/2018 12:00 am', 'notes' => $SpecialRequests ] ]);