国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PHP:接口請(qǐng)求與被請(qǐng)求

這篇具有很好參考價(jià)值的文章主要介紹了PHP:接口請(qǐng)求與被請(qǐng)求。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

A-系統(tǒng):請(qǐng)求頁(yè)面(使用的php請(qǐng)求)

<!-- 這里是獲取調(diào)用數(shù)據(jù) -->

<?php
//連接數(shù)據(jù)庫(kù)
require_once 'get_db_conn.php';
$conn = db_connect();
//提交表單
if (isset($_POST['Save'])) {
    //傳入api
    $url = 'http://XXX/project/api/external/test.php';
    //請(qǐng)求頭
    $headers = array(
        'Content-Type: application/json',
        'AccessKeyId: 1XTAJKZSK02KMSZW47D2LSFQMMUV3LST',
        'AccessKeySecret: VS7EGQTB2CGWZXREL3QT3V72ZSRPYSXB'
    );
    //請(qǐng)求參數(shù)
    $json_data = '{
		"datainfo": [
			{
				"require1": "require1_value",
				"require2": "require2_value",
				"test3": "test_value"
			}
		]
	}';
    // 初始化cURL會(huì)話(huà)
    $ch = curl_init();
    // 設(shè)置cURL選項(xiàng)
    // 設(shè)置了請(qǐng)求的目標(biāo)URL
    curl_setopt($ch, CURLOPT_URL, $url);
    // 發(fā)出一個(gè)POST請(qǐng)求
    curl_setopt($ch, CURLOPT_POST, true);
    // 設(shè)置HTTP請(qǐng)求頭信息
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    // curl_exec()函數(shù)會(huì)將獲取到的數(shù)據(jù)以字符串形式返回,而非直接輸出到瀏覽器或標(biāo)準(zhǔn)輸出。
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // 設(shè)置POST請(qǐng)求的主體數(shù)據(jù)。這里$json_data是一個(gè)JSON格式的字符串,它會(huì)被作為POST請(qǐng)求的數(shù)據(jù)部分發(fā)送給服務(wù)器。
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
    // 在進(jìn)行HTTPS連接時(shí)是否驗(yàn)證服務(wù)器的SSL證書(shū),設(shè)置為false意味著cURL在連接時(shí)將跳過(guò)SSL證書(shū)驗(yàn)證過(guò)程
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    // 執(zhí)行cURL請(qǐng)求
    $response = curl_exec($ch);

    // 檢查cURL執(zhí)行是否成功
    if (curl_errno($ch)) {
        echo 'Error:' . curl_error($ch);
    } else {
        // 處理響應(yīng)數(shù)據(jù)
        $result = json_decode($response, true);
        // 根據(jù)API返回的數(shù)據(jù)進(jìn)行后續(xù)操作...
        echo json_encode($result); // 使用print_r()函數(shù)打印返回的數(shù)據(jù)以便于調(diào)試和查看
    }

    // 關(guān)閉cURL會(huì)話(huà)
    curl_close($ch);
}

?>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8'); ?>" method="POST" enctype="multipart/form-data">
        <div class="centre">
            <input type="submit" name="Save" value="提交">
        </div>
    </form>
</body>

</html>

B-系統(tǒng):被請(qǐng)求頁(yè)面(test.php)

<?php
//連接數(shù)據(jù)庫(kù)
require_once 'get_db_conn.php';
$conn = db_connect();
// 在HTTP響應(yīng)頭中設(shè)置內(nèi)容類(lèi)型(Content-Type)為 application/json。告知客戶(hù)端服務(wù)器即將發(fā)送的數(shù)據(jù)格式是JSON
header('Content-Type: application/json');
// 檢查并驗(yàn)證AccessKeyId和AccessKeySecret(假設(shè)已實(shí)現(xiàn)驗(yàn)證函數(shù))
// 這里僅為示例,實(shí)際應(yīng)根據(jù)您的密鑰管理系統(tǒng)進(jìn)行驗(yàn)證
$access_key_id = isset($_SERVER['HTTP_ACCESSKEYID']) ? $_SERVER['HTTP_ACCESSKEYID'] : '';
$access_key_secret_provided = isset($_SERVER['HTTP_ACCESSKEYSECRET']) ? $_SERVER['HTTP_ACCESSKEYSECRET'] : '';
//調(diào)用方法validate_access_keys判斷密鑰是否正確
if (!validate_access_keys($access_key_id, $access_key_secret_provided)) {
    //設(shè)置HTTP響應(yīng)狀態(tài)碼為401,該狀態(tài)碼表示用戶(hù)未經(jīng)過(guò)授權(quán),無(wú)法訪(fǎng)問(wèn)請(qǐng)求的資源。
    http_response_code(401);
    //返回錯(cuò)誤信息給客戶(hù)端
    echo json_encode(['error' => 'Unauthorized']);
    // 結(jié)束當(dāng)前腳本的執(zhí)行,不再執(zhí)行后續(xù)的任何代碼。
    exit;
}

// 檢查請(qǐng)求方法和Content-Type
// 超全局變量,用于獲取當(dāng)前HTTP請(qǐng)求的方法
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
    // 客戶(hù)端請(qǐng)求使用的方法(如GET、POST、PUT等)在服務(wù)器上針對(duì)指定資源不允許使用
    http_response_code(405);
    //返回錯(cuò)誤信息給客戶(hù)端
    echo json_encode(['error' => 'Method Not Allowed']);
    // 結(jié)束當(dāng)前腳本的執(zhí)行,不再執(zhí)行后續(xù)的任何代碼。
    exit;
}

// 預(yù)定義的服務(wù)器變量,它包含了客戶(hù)端在HTTP請(qǐng)求頭中發(fā)送過(guò)來(lái)的Content-Type值。這個(gè)值描述了請(qǐng)求主體(POST數(shù)據(jù)或PUT數(shù)據(jù)等)的內(nèi)容類(lèi)型
$content_type = isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : '';

// 用stripos函數(shù)查找 $content_type 字符串中是否以 'application/json' 開(kāi)頭。stripos 函數(shù)與 strpos 類(lèi)似,但它是不區(qū)分大小寫(xiě)的查找。
if (stripos($content_type, 'application/json') !== 0) {
    // 表示服務(wù)器無(wú)法處理請(qǐng)求實(shí)體的媒體類(lèi)型。
    http_response_code(415);
    //返回錯(cuò)誤信息給客戶(hù)端
    echo json_encode(['error' => 'Unsupported Media Type']);
    // 結(jié)束當(dāng)前腳本的執(zhí)行,不再執(zhí)行后續(xù)的任何代碼。
    exit;
}

// 獲取并解析請(qǐng)求體中的JSON數(shù)據(jù)
// 從特殊的PHP輸入流 'php://input' 中讀取數(shù)據(jù)。這個(gè)輸入流提供了對(duì)HTTP請(qǐng)求正文(請(qǐng)求體)的訪(fǎng)問(wèn),特別適用于POST請(qǐng)求中傳輸?shù)姆潜韱螖?shù)據(jù),例如JSON或XML格式的數(shù)據(jù)
$input_json = file_get_contents('php://input');
// json_decode 函數(shù),該函數(shù)用于將JSON格式的字符串 $input_json 解析成PHP變量。這里的第二個(gè)參數(shù)設(shè)為 true,表示將JSON對(duì)象解碼為PHP關(guān)聯(lián)數(shù)組,而不是默認(rèn)的StdClass對(duì)象
$input_data = json_decode($input_json, true);

// 檢查請(qǐng)求體中是否有必需的參數(shù)(現(xiàn)在考慮嵌套結(jié)構(gòu))
if (!isset($input_data['datainfo'][0]['require1'], $input_data['datainfo'][0]['require2'])) {
    // 如果沒(méi)有找到所需的參數(shù),則返回錯(cuò)誤
    http_response_code(400);
    echo json_encode(['error' => 'Invalid Request Body']);
    exit;
}

// 使用請(qǐng)求參數(shù)執(zhí)行業(yè)務(wù)邏輯
$require1 = $input_data['datainfo'][0]['require1'];
$require2 = $input_data['datainfo'][0]['require2'];
// 注意:這里似乎沒(méi)有'test3'在根級(jí)別的數(shù)據(jù)項(xiàng),所以如果'test3'也在'data'數(shù)組內(nèi),則應(yīng)該這么寫(xiě):
$test3 = $input_data['datainfo'][0]['test3'];

//調(diào)用方法查詢(xún)數(shù)據(jù)
$data = fun_select($require1, $require2, $test3, $conn);


// 返回成功響應(yīng)
http_response_code(200);
echo json_encode(['data' => $data,'msg' => 'success','require1'=>$require1]);

/**
 * 示例性驗(yàn)證AccessKeyId和AccessKeySecret的方法,實(shí)際項(xiàng)目中應(yīng)實(shí)現(xiàn)自己的驗(yàn)證邏輯
 */
function validate_access_keys($key_id, $key_secret) {
    // 實(shí)現(xiàn)驗(yàn)證邏輯,如果驗(yàn)證通過(guò)則返回true,否則返回false
    //這里給出默認(rèn)值
    if($key_id == '1XTAJKZSK02KMSZW47D2LSFQMMUV3LST' && $key_secret == 'VS7EGQTB2CGWZXREL3QT3V72ZSRPYSXB'){
        return true;
    }
    return false; // 默認(rèn)返回false,僅做占位
}
//執(zhí)行查詢(xún)的方法
function fun_select($require1, $require2, $test3, $conn) {
    $sql_select = "SELECT * FROM accountgroups";
    $result_select = mysqli_query($conn, $sql_select);
    // 檢查查詢(xún)是否成功
    if ($result_select) {
        // 將查詢(xún)結(jié)果轉(zhuǎn)換為數(shù)組
        $data = [];
        while ($row = mysqli_fetch_assoc($result_select)) {
            $data[] = $row;
        }
        // 返回查詢(xún)結(jié)果
        return $data;
    } else {
        // 查詢(xún)失敗時(shí)返回錯(cuò)誤信息或者空數(shù)組
        echo "SQL查詢(xún)執(zhí)行失敗: " . mysqli_error($conn);
        return [];
    }
}
?>

文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-857041.html

到了這里,關(guān)于PHP:接口請(qǐng)求與被請(qǐng)求的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用SSE技術(shù)調(diào)用OPENAI接口并實(shí)現(xiàn)流式輸出,用PHP語(yǔ)言實(shí)現(xiàn)

    作為AI語(yǔ)言模型服務(wù)提供商,OpenAI 提供了一系列的 API 接口,其中大部分需要通過(guò) HTTP 請(qǐng)求訪(fǎng)問(wèn)。對(duì)于大量數(shù)據(jù)的請(qǐng)求,傳統(tǒng)的同步請(qǐng)求會(huì)導(dǎo)致網(wǎng)絡(luò)響應(yīng)變慢,無(wú)法滿(mǎn)足實(shí)時(shí)數(shù)據(jù)處理和分析的需求。因此,為了優(yōu)化這些接口的調(diào)用效率,我們可以利用 SSE(Server Sent Events) 技術(shù)來(lái)

    2024年02月11日
    瀏覽(22)
  • 短視頻矩陣系統(tǒng)源碼開(kāi)發(fā)搭建技術(shù)解析-PHP語(yǔ)言

    短視頻矩陣系統(tǒng)源碼開(kāi)發(fā)搭建技術(shù)解析-PHP語(yǔ)言

    一、系統(tǒng)架構(gòu) 整個(gè)短視頻矩陣系統(tǒng)大概分為以下幾個(gè)模塊: 1.多平臺(tái)賬號(hào)管理 支持抖音、快手、小紅書(shū)、西瓜、頭條視頻號(hào)等多平臺(tái)賬號(hào)管理。 2.視頻管理模塊 支持視頻批量上傳、批量剪輯、文字轉(zhuǎn)語(yǔ)音,特效等功能配置 3.推薦算法模塊 推薦算法模塊主要用來(lái)推薦用戶(hù)感興

    2024年02月07日
    瀏覽(30)
  • openAI 通過(guò)php方式 發(fā)送請(qǐng)求,流數(shù)據(jù)形式傳輸,php 實(shí)現(xiàn)chatGPT功能

    此處使用的框架是 symfony ,可自行根據(jù)自己框架開(kāi)發(fā),大同小異,框架無(wú)所謂,主要是功能! 先上代碼 :

    2024年01月19日
    瀏覽(21)
  • php如何處理高并發(fā)請(qǐng)求

    PHP 處理高并發(fā)請(qǐng)求的方法: ??? 使用異步框架:通過(guò)使用異步處理方式,可以有效地降低 PHP 處理請(qǐng)求的響應(yīng)時(shí)間,避免因?yàn)?IO 操作而導(dǎo)致的等待阻塞。常用的異步框架有ReactPHP和Swoole等。 ??? 使用緩存:使用緩存可以減少每個(gè)請(qǐng)求都需要訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)或文件系統(tǒng)的次數(shù),有

    2024年02月09日
    瀏覽(16)
  • PHP從入門(mén)到精通—PHP開(kāi)發(fā)入門(mén)-PHP概述、PHP開(kāi)發(fā)環(huán)境搭建、PHP開(kāi)發(fā)環(huán)境搭建、第一個(gè)PHP程序、PHP開(kāi)發(fā)流程

    每開(kāi)始學(xué)習(xí)一門(mén)語(yǔ)言,都要了解這門(mén)語(yǔ)言和進(jìn)行開(kāi)發(fā)環(huán)境的搭建。同樣,學(xué)生開(kāi)始PHP學(xué)習(xí)之前,首先要了解這門(mén)語(yǔ)言的歷史、語(yǔ)言?xún)?yōu)勢(shì)等內(nèi)容以及了解開(kāi)發(fā)環(huán)境的搭建。 PHP概述 ? 認(rèn)識(shí)PHP PHP最初是由Rasmus Lerdorf于1994年為了維護(hù)個(gè)人網(wǎng)頁(yè)而編寫(xiě)的一個(gè)簡(jiǎn)單程序。這個(gè)程序用來(lái)顯

    2024年02月14日
    瀏覽(26)
  • php 常用的接口和函數(shù)

    — interface to provide accessing to objects as arrays 提供以數(shù)組形式訪(fǎng)問(wèn)對(duì)象的接口。 interface synopsis 接口需要實(shí)現(xiàn)下面幾個(gè)方法 basic usage 基礎(chǔ)用法 實(shí)現(xiàn)訪(fǎng)問(wèn)數(shù)組的方式訪(fǎng)問(wèn)接口 the above example will output something similar to : 輸出結(jié)果 php官網(wǎng)ArrayAccess

    2024年02月05日
    瀏覽(28)
  • 如何在PHP中對(duì)接openAI接口,PHP創(chuàng)建AI會(huì)話(huà)思路以及代碼講解

    https://platform.openai.com/account/api-keys 在這個(gè)地址進(jìn)行注冊(cè),但是需要翻墻,可自己查找國(guó)內(nèi)的試用地址。就不多贅述… php端代碼: 思路:前端通過(guò)一個(gè)圖標(biāo)入口,點(diǎn)擊后 發(fā)送請(qǐng)求,創(chuàng)建一個(gè)會(huì)話(huà)(也就是聊天室),并且把創(chuàng)建的這個(gè)會(huì)話(huà) 入庫(kù)。并且后端返回一個(gè)入庫(kù)生成的

    2024年01月18日
    瀏覽(25)
  • php第三方阿里云接口

    阿里云 OpenAPI 開(kāi)發(fā)者門(mén)戶(hù)

    2024年02月15日
    瀏覽(22)
  • PHP的curl有三種Post請(qǐng)求數(shù)據(jù)的方式

    今天要講的HTTP請(qǐng)求頭的Content-Type字段,就是在curl發(fā)送post請(qǐng)求的時(shí)候需要指定以何種方式來(lái)請(qǐng)求數(shù)據(jù),常用的有3類(lèi): 1、form-data 。就是 multipart/form-data 使用表單的方式來(lái)發(fā)送數(shù)據(jù) 是curl采用的默認(rèn)發(fā)送方式。請(qǐng)求數(shù)組類(lèi)型的格式。 Content-Type: multipart/form-data 2、x-www-form-urlenco

    2024年02月11日
    瀏覽(35)
  • PHP 文心千帆API接口對(duì)接

    PHP 文心千帆API接口對(duì)接

    創(chuàng)建一個(gè)智能云應(yīng)用。根據(jù)實(shí)際需求創(chuàng)建智能云應(yīng)用。創(chuàng)建成功后,獲取AppID、API Key、Secret Key 等信息。 API 授權(quán)。對(duì)應(yīng)用的 AppID 進(jìn)行授權(quán)。 獲取接口訪(fǎng)問(wèn)憑證 access_token 。根據(jù)第1步獲取的 API Key 和 Secret Key , 獲取 access_token ,通過(guò) access_token 鑒權(quán)調(diào)用者身份。 調(diào)用API接口。

    2024年02月11日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包