我想要的是從具有HTTP(例如jQuery的AJAX)請求的API獲取對象到外部api。我如何開始?我對Google先生進行了研究,但找不到任何幫助。從Laravel執行HTTP請求到外部API
我開始懷疑這是甚至可能的嗎? 在這篇文章中Laravel 4 make post request from controller to external url with data它看起來可以完成。但是沒有例子,也沒有任何來源可以找到一些文檔。
請幫我一下嗎?
我想要的是從具有HTTP(例如jQuery的AJAX)請求的API獲取對象到外部api。我如何開始?我對Google先生進行了研究,但找不到任何幫助。從Laravel執行HTTP請求到外部API
我開始懷疑這是甚至可能的嗎? 在這篇文章中Laravel 4 make post request from controller to external url with data它看起來可以完成。但是沒有例子,也沒有任何來源可以找到一些文檔。
請幫我一下嗎?
: https://stackoverflow.com/a/22695523/1412268
在看看Guzzle
$client = new GuzzleHttp\Client();
$res = $client->get('https://api.github.com/user', ['auth' => ['user', 'pass']]);
echo $res->getStatusCode(); // 200
echo $res->getBody(); // { "type": "User", ....
提供個
你只是想調用一個外部URL並使用結果? PHP做這個開箱,如果我們談論的是一個簡單的GET請求的東西服務JSON:
$json = json_decode(file_get_contents('http://host.com/api/stuff/1'), true);
如果你想要做一個POST請求,這是一個有點困難,但有實例負載如何用捲曲來做到這一點。
所以我想這個問題是;你想要什麼?
我希望能夠使用REST API的各種功能。所以是的,我需要POST。我想(希望......)Laravel會有一些方法可以用Laravel的方式來完成,但是我會堅持使用PHP。謝謝。 – Chilion
您可以使用Laravel請求,並沒有外部包
$request = \Illuminate\Http\Request::create('http://your-api.com', 'POST', ['param1' => 'value1', 'param2' => 'value2']);
請求的功能,因爲Laravel依靠的Symfony的請求包。
Request類是一個容器,可以更容易地訪問請求的各種屬性。運行上述代碼會生成一個對象,但它不會對端點執行實際的HTTP請求。 –
如果你只需要觸發請求外部API,你可以使用Laravel Request類如下(假設你使用GET請求)
$request = Request::create('http://your-api.com', 'GET');
但是,如果你需要得到響應的內容,您可以使用Laracurl包如下:
$response = Laracurl::get('http://your-api.com');
我們可以利用包Laravel狂飲,它是一個PHP HTTP客戶端發送HTTP請求。
您可以通過作曲家
composer require guzzlehttp/guzzle:~6.0
安裝狂飲也可以指定狂飲作爲您的項目現有composer.json的依賴
{
"require": {
"guzzlehttp/guzzle": "~6.0"
}
}
示例代碼中laravel 5,如下圖所示使用狂飲,
use GuzzleHttp\Client;
class yourController extends Controller {
public function saveApiData()
{
$client = new Client();
$res = $client->request('POST', 'https://url_to_the_api', [
'form_params' => [
'client_id' => 'test_id',
'secret' => 'test_secret',
]
]);
echo $res->getStatusCode();
// "200"
echo $res->getHeader('content-type');
// 'application/json; charset=utf8'
echo $res->getBody();
// {"type":"User"...'
}
謝謝你的回答。另請參閱我的帖子下方的評論; \t \t \t 很久以後,創建了一個非常小的嘖嘖如何使用Guzzle。來自aisnoek他的回答。 chilion.nl/laravel-post-requests-with-guzzle - Chilion 8月19日12:09√ – Chilion
很久以後,創建了一個真正的小嘖嘖如何使用Guzzle。來自aisnoek他的回答。 HTTP://基連。nl/laravel-post-requests-with-guzzle/ – Chilion
如果仍然感興趣,你也可以使用Curl來做這件事,我想你可以說curl是某種形式的PHP的jquery ajax。 – killstreet