亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
1. 發(fā)出基本的 GET 請求
2、使用POST等方式發(fā)送數(shù)據(jù)
3. 添加標頭、查詢參數(shù)和選項
4. 處理錯誤和響應(yīng)
首頁 php框架 Laravel 如何使用Laravel的HTTP客戶端來消費外部API?

如何使用Laravel的HTTP客戶端來消費外部API?

Oct 14, 2025 am 12:39 AM

Laravel 的 HTTP 客戶端通過流暢的界面簡化了 API 請求。 1. 使用 Http::get($url) 進行 GET 請求,使用 json() 解碼響應(yīng)。 2.使用Http::post($url, $data)發(fā)送POST數(shù)據(jù),它會自動發(fā)送JSON。 3. 使用 withHeaders()、withToken()、timeout() 和查詢參數(shù)自定義請求。 4. 使用 success()、failed() 檢查響應(yīng)狀態(tài),或使用 throw() 處理 HTTP 錯誤。

如何使用 Laravel 的 HTTP 客戶端來使用外部 API?

Laravel 7 中引入的 Laravel HTTP 客戶端提供了一個乾淨、流暢的 API,用於向外部服務(wù)發(fā)出傳出 HTTP 請求。它構(gòu)建在 Guzzle 之上,簡化了使用 RESTful API 的過程,無需安裝額外的軟件包。

1. 發(fā)出基本的 GET 請求

要從外部 API 獲取數(shù)據(jù),請使用get方法。您可以直接傳遞 URL,並檢索響應(yīng)正文或 JSON 內(nèi)容。

  • 使用Http::get($url)發(fā)送 GET 請求。
  • 調(diào)用json()將響應(yīng)解碼為數(shù)組,或調(diào)用 body()獲取原始內(nèi)容。

例子:

使用 Illuminate\Support\Facades\Http;

$response = Http::get('https://jsonplaceholder.typicode.com/posts/1');

// 獲取解碼後的 JSON
$data = $response->json();

// 或者獲取原始主體
$body = $response->body();

2、使用POST等方式發(fā)送數(shù)據(jù)

要創(chuàng)建資源或發(fā)送數(shù)據(jù),請使用postput或其他 HTTP 動詞。傳遞一個數(shù)組作為第二個參數(shù)來發(fā)送表單數(shù)據(jù)或 JSON 負載。

  • Http::post($url, $data)默認發(fā)送 JSON。
  • 數(shù)據(jù)會自動轉(zhuǎn)換為 JSON 並設(shè)置 Content-Type 標頭。

例子:

$response = Http::post('https://jsonplaceholder.typicode.com/posts', [
    '標題' => '我的帖子',
    'body' => '此處內(nèi)容',
    '用戶ID' => 1
]);

if ($response->successful()) {
    $createdPost = $response->json();
}

3. 添加標頭、查詢參數(shù)和選項

您可以使用鍊式方法自定義請求。常見需求包括設(shè)置標頭、添加查詢字符串或配置超時。

  • 使用withHeaders()添加自定義標頭(例如,授權(quán))。
  • 使用withToken()作為不記名令牌。
  • 附加timeout()以避免掛起請求。
  • 在 URL 中使用數(shù)組語法或通過withOptions()添加查詢參數(shù)。

身份驗證示例:

$response = Http::withToken('your-api-token')
               ->超時(10)
               ->withHeaders([
                   'X-Requested-With' => 'Laravel'
               ])
               ->get('https://api.example.com/user');

4. 處理錯誤和響應(yīng)

在處理結(jié)果之前始終檢查請求是否成功。 Laravel 的 HTTP 客戶端僅在底層請求失?。ㄈ缇W(wǎng)絡(luò)錯誤)時拋出異常,而不是在 4xx 或 5xx 響應(yīng)時拋出異常。

  • 使用success()檢查 2xx 狀態(tài)。
  • 使用failed()serverError()作為條件邏輯。
  • 如果響應(yīng)為 4xx 或 5xx,則調(diào)用throw()拋出異常。

錯誤處理示例:

$response = Http::post('https://api.example.com/data', $data);

if ($response->successful()) {
    返回 $response->json();
}

if ($response->clientError()) {
    // 記錄 4xx 錯誤
}

if ($response->serverError()) {
    // 處理 5xx
}

// 或者在 4xx/5xx 上自動拋出異常
$response->throw()->json();

基本上只是鏈接您的選項,發(fā)送請求,然後安全地處理響應(yīng)。 Laravel 的 HTTP 客戶端保持簡單且可讀。

以上是如何使用Laravel的HTTP客戶端來消費外部API?的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Stock Market GPT

Stock Market GPT

人工智慧支援投資研究,做出更明智的決策

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

如何將消息記錄到Laravel中的文件? 如何將消息記錄到Laravel中的文件? Sep 21, 2025 am 06:04 AM

LaraveluseMonologTologMessagesViathelogFacade,withDefaultLogSstoreDinstorage/logs/logaver.log.configurechannelsinconfig/loggpocontrolOlOutput; theDefeftoconTrolOutput; theDefeftStackChannAnneLagateSmultipleHersMultipleHerslikeSlikeSlikesingLikeSingLikeSingle,whatwrile.afile.usel.uselel.uselel.usecy.useleleel.use)

如何在Laravel中驗證API 如何在Laravel中驗證API Sep 18, 2025 am 12:26 AM

installlaravelsanctumviaCompoSerandPublishItsFiles,thenRunMigrations.2.AddthehasapitokenStraittheUserModel.3.definelogin,logout of lokout of anduserroutesinapi.php

如何使用Laravel的Hasmanythrough關(guān)係? 如何使用Laravel的Hasmanythrough關(guān)係? Sep 17, 2025 am 06:38 AM

AcountrycanaccessallpostSthrouserSerssinghasmanyThrough

如何使用Laravel中的路線資源控制器? 如何使用Laravel中的路線資源控制器? Sep 24, 2025 am 05:05 AM

Laravel資源控制器通過RESTful路由快速處理CRUD操作,使用Artisan命令生成控制器並註冊資源路由,單行代碼即可創(chuàng)建全部標準路由,支持限制動作、添加中間件及命名,結(jié)合路由模型綁定可自動解析參數(shù),提升開發(fā)效率並保持代碼結(jié)構(gòu)清晰。

如何使用Laravel Sanctum實施API身份驗證? 如何使用Laravel Sanctum實施API身份驗證? Sep 19, 2025 am 04:08 AM

toimplementApiAthenticationWithlaravelsanctum,YouneEdtoStepoken的authenticationthatallowsspas,mobileApps,andth-thired-thired-partyservicestoseStoseStoSecerlelyAccessyourapi.sanctumprovidesleightigeslightightightwerightightweightightweightightappablebybybybybybyissugyapitokensthatcanthatcan

如何在Laravel控制器中重定向用戶? 如何在Laravel控制器中重定向用戶? Sep 21, 2025 am 05:26 AM

使用redirect()輔助函數(shù)可實現(xiàn)Laravel控制器中的重定向,如redirect()->route('home')跳轉(zhuǎn)到命名路由,redirect('/dashboard')跳轉(zhuǎn)到指定URL,redirect()->back()返回上一頁,結(jié)合withInput()保留表單數(shù)據(jù),with()傳遞會話消息,推薦使用命名路由以提高可維護性。

如何在Laravel編寫RAW SQL查詢? 如何在Laravel編寫RAW SQL查詢? Sep 24, 2025 am 02:55 AM

使用DB門面執(zhí)行原生SQL,根據(jù)查詢類型選擇DB::select、DB::insert、DB::update或DB::delete,並用參數(shù)綁定防止SQL注入;結(jié)構(gòu)變更可用DB::unprepared;結(jié)合DB::raw可在查詢構(gòu)造器中嵌入原生表達式。

如何連接到Laravel的第二個數(shù)據(jù)庫? 如何連接到Laravel的第二個數(shù)據(jù)庫? Sep 17, 2025 am 01:42 AM

配置第二個數(shù)據(jù)庫連接:在config/database.php中添加新連接並設(shè)置.env變量;2.使用DB::connection('mysql_second')或模型$connection屬性指定連接;3.運行時可用on()方法動態(tài)切換;4.遷移時用Schema::connection()並配合--database選項執(zhí)行。

See all articles