[英]Parsing Request, PHP/Laravel
该API用于门禁设备上报人员通行记录,经我(第三方平台)调用该API到人脸识别终端或人脸识别门禁终端。
调用方向:
人脸识别终端或人脸识别门禁终端向第三方平台调用API。
请求说明:
请求方式:POST 请求地址:/LAPI/V1.0/System/Event/Notification/PersonVerification Content-Type:text/plain
请求示例:
{
"Reference": "204.2.1.20:5118/LAPI/V1.0/System/Event/Subscription/0",
"Seq": 5,
"DeviceCode": "210235C3R13202000093",
"Timestamp": 1564735558,
"NotificationType": 1,
"FaceInfoNum": 1,
"FaceInfoList": [
{
"ID": 5,
"Timestamp": 1564707615,
"CapSrc": 1,
"FeatureNum": 0,
"FeatureList": [
{
"FeatureVersion": "",
"Feature": ""
},
{
"FeatureVersion": "",
"Feature": ""
}
],
“Temperature”: 36.5,
“MaskFlag”: 1,
"PanoImage": {
"Name": "1564707615_1_86.jpg",
"Size": 101780,
"Data": "…"
},
"FaceImage": {
"Name": "1564707615_2_86.jpg",
"Size": 35528,
"Data": "…"
},
"FaceArea": {
"LeftTopX": 4981,
"LeftTopY": 3744,
"RightBottomX": 8250,
"RightBottomY": 5583
}
}
],
"CardInfoNum": 0,
"CardInfoList": [ ],
"GateInfoNum": 0,
"GateInfoList": [ ],
"LibMatInfoNum": 1,
"LibMatInfoList": [
{
"ID": 5,
"LibID": 3,
"LibType": 4,
"MatchStatus": 2,
"MatchPersonID": 0,
"MatchFaceID": 0,
"MatchPersonInfo": {
"PersonName": "",
"Gender": 0,
"CardID": "",
"IdentityNo": ""
}
}
]
}
我正在使用 Laravel,我在尝试 $request->all() 时得到 [],当我dump( $request->getContent() );
时得到 [] dump( $request->getContent() );
倾倒
似乎我需要从请求的开头和结尾删除""
以便 json_decode(),但无论我使用什么字符串函数 - preg_replace、substring 等 - 都没有改变,当我尝试 $content[0] 时,我得到了{
而不是"
, $content[-1] 我得到了\\n
, $content[-2] 我得到了}
谁能指出我哪里出错了?
看起来这是Content-Type
标头问题。 但它应该是一个适当的解决方案:
$find = ['/"""/', '/\\\n/', '/“/', '/”/'];
$replace = ['', '', '"', '"'];
$output = preg_replace($find, $replace, $your_input);
// now the $output is ready to be decoded
$decoded = json_decode($output);
$v = var_dump($decoded);
有关实际实现,请参阅此 Repl: Json Parse
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.