PHP接口接收客户端提交上来的PUT数据,本地测试正常,APP提交的数据却收不到,使用PHP CURL测试后发现CURL提交的数据和本地测试工具不一样,兼容CURL提交后,APP端还是不用,最后才发现APP端PUT请求过来的是数据是json格式,兼容json后一切正常。
try{ $putData = file_get_contents("php://input"); $resultData = json_decode($putData,true); if(is_array($resultData)){ //解析IOS提交的PUT数据 return $resultData; } if(!strstr($putData,"\r\n")){ //解析本地测试工具提交的PUT数据 parse_str($putData,$putData); return $putData; } //解析PHP CURL提交的PUT数据 $putData = explode("\r\n",$putData); $resultData = []; foreach($putData as $key=>$data){ if(substr($data,0,20) == 'Content-Disposition:'){ preg_match('/.*\"(.*)\"/',$data,$matchName); $resultData[$matchName[1]] = $putData[$key+2]; } } return $resultData; }catch (Exception $e){ return []; }