返回的數(shù)據(jù)是php去決定的,xml和json都是可以的,
創(chuàng)新互聯(lián)專注于固安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供固安營銷型網(wǎng)站建設(shè),固安網(wǎng)站制作、固安網(wǎng)頁設(shè)計、固安網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造固安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供固安網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
你可以和使用接口的一方定好規(guī)則,到底要xml格式數(shù)據(jù)還是json格式的數(shù)據(jù)。
當(dāng)然你也可以更靈活點(diǎn),當(dāng)別人請求你的接口的時候,帶上參數(shù)。你在接口里面接受,如果參數(shù)是1,你就返回json,如果是2,你就返回xml這樣做顯得更靈活。這都是在乎你在接口中怎么去寫的。
這種情況發(fā)生在以UTF-8編碼格式傳輸數(shù)據(jù)的時候,這開頭的三個字節(jié)叫做BOM(Byte Order Mark,字節(jié)順序標(biāo)記),小程序接收到php端返回的數(shù)據(jù)后,把開頭的三個字節(jié)去掉即可。
更徹底的解決辦法是把php文件保存為?不帶BOM的UTF-8?文件,這樣返回的數(shù)據(jù)就不帶BOM了
JSONXML
XML: 是一種標(biāo)記語言,設(shè)計的宗旨是傳輸數(shù)據(jù)
JSON: 輕量級的數(shù)據(jù)交換格式
APP接口主要是用JSON輸出格式
APP接口輸出格式三要素:
1. code::錯誤碼
2. msg:錯誤碼對應(yīng)的描述
3. data:接口返回的數(shù)據(jù)
誰有權(quán)限調(diào)用APP接口,客戶端需要帶著憑證來調(diào)用APP接口
JWT的原理:
服務(wù)端認(rèn)證之后,生成一個JSON對象,返回給用戶。后續(xù)客戶端所有請求都會帶上這個JSON對象。服務(wù)端依靠這個JSON對象來認(rèn)定用戶身份。
組成: Header, Payload, Signature
1. Header
說一下我是什么
header通常包含了兩部分:類型和加密算法
{
"alg": "HS256",
"typ": "JWT"
}
header需要經(jīng)過Base64Url編碼后作為IWT的第一部分。
2. Payload
payload包含了claim, 三種類型reserved, public, private
reserved這些claim是JWT預(yù)先定義的,不強(qiáng)制使用,常用的有:
1). iss: 簽發(fā)者
2). exp: 過期的時間戳
3). sub: 面向的用戶
4). aud: 接收方
5). iat: 簽發(fā)時間
{
"sub":? "1234567890",
"name":? "John Doe",
"admin": true
}
payload需要經(jīng)過Base64Url編碼后作為JWT的第二部分。
3. Signature
創(chuàng)建簽名使用編碼后的header和payload以及一個密匙,使用header中指定的簽名算法進(jìn)行簽名
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)
簽名是在服務(wù)端進(jìn)行的,客戶端并不知道,所以是安全的。
PHP接收J(rèn)SON格式的數(shù)據(jù)
在API服務(wù)中,目前流行采用json形式來交互。
給前端調(diào)用的接口輸出Json數(shù)據(jù),這個比較簡單,只需要組織好數(shù)據(jù),用json_encode($array) 轉(zhuǎn)化一下,前端就得到j(luò)son格式的數(shù)據(jù)。
接收前端提交的json數(shù)據(jù)稍微復(fù)雜一點(diǎn),原因是:PHP默認(rèn)識別的數(shù)據(jù)類型是application/x-標(biāo)準(zhǔn)的數(shù)據(jù)類型。因此,對型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之類的內(nèi)容無法解析,如果用$_POST數(shù)組來接收就會失?。?/p>
此時可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 來獲取提交的數(shù)據(jù)
查看手冊,可以發(fā)現(xiàn)$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的區(qū)別:
$_POST:通過 HTTP POST 方法傳遞的變量組成的數(shù)組,是自動全局變量。
$GLOBALS['HTTP_RAW_POST_DATA'] :總是產(chǎn)生 $HTTP_RAW_POST_DATA 變量包含有原始的 POST 數(shù)據(jù)。此變量僅在碰到未識別 MIME 類型的數(shù)據(jù)時產(chǎn)生。$HTTP_RAW_POST_DATA 對于 enctype="multipart/form-data" 表單數(shù)據(jù)不可用。也就是說基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一樣的。但是如果post過來的數(shù)據(jù)不是PHP能夠識別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來接收,比如 text/xml 或者 soap 等等。
本文標(biāo)題:php接口數(shù)據(jù)格式 php獲取接口數(shù)據(jù)
本文地址:http://m.rwnh.cn/article18/hpjsgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站導(dǎo)航、網(wǎng)站收錄、靜態(tài)網(wǎng)站、電子商務(wù)、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)