2017-11-17 53 views
0

使用Laravel 5並試圖將一些數據從我的網站發送到另一個,這爲我提供了REST API。但他們使用cookies作爲授權。目前,我已成功通過身份驗證。並堅持如何通過POST方法將此cookie發送到API接口?這是我的列表。如何在使用REST API時發送cookie?

Thanx提前。

P.S.所有的事情都在控制器內進行。

if (Cookie::get('amoauth') !== null) { 
      //COOKIE IS HERE 
      $client = new Client(); 
      $newlead = $client->post('https://domain.amocrm.ru/private/api/v2/json/leads/set', [ 
       'add' => [ 
        'add/name' => 'TEST LEAD', 
        'add/date_create' => time(), 
        'add/last_modified' => time(), 
        'add/status_id' => '1', 
        'add/price' => 5000 
       ] 
      ]); 
     } else { 
      $client = new Client(); 
      $auth = $client->post('https://domain.amocrm.ru/private/api/auth.php',[ 
       'USER_LOGIN' => 'login', 
       'USER_HASH' => 'hash', 
       'type' => 'json' 
      ]); 
      $auth = $auth->getHeaders('Set-Cookie'); 
      Cookie::queue('amoauth', $auth, 15); 
      return redirect('/test'); 
     } 

現在返回我的以下內容:

Client error: `POST https://domain.amocrm.ru/private/api/v2/json/leads/set` resulted in a `401 Unauthorized` response. 
+0

發現這個:https://github.com/guzzle/guzzle/issues/1400但仍然不知道如何實現它(通過此鏈接描述相同的情況)。 – Dmitri

+0

試圖使用'CookieJar:$ jar = new \ GuzzleHttp \ Cookie \ CookieJar(Cookie :: get('amoauth'));'但仍然獲得'401 Unauthorized' ...也許我在獲取和存儲這個來自API提供商的cookie? – Dmitri

+0

這是我從API提供者成功驗證後得到的結果:[link](https://pastebin.com/PECa1xdv)。這是存儲cookie:[鏈接](https://pastebin.com/PDVBiwNh)。任何想法都值得肯定。 – Dmitri

回答

0

找到了解決辦法:切換到ixudra/curl