这里是引用
引用:https://blog.csdn.net/qq_35641923/article/details/81386708
在项目中通过x-www-form-urlencoded方式时无法请求成功,日志出现错误
<!doctype html><html lang="en"><head><title>HTTP Status 400 – Bad Request</title><style type="text/css ">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {fo nt-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1><hr class="line" /><p ><b>Type</b> Status Report</p><p><b>Message</b> Required String parameter 'callback' is not present</p><p><b>Description</b> The server cannot or will not proce ss the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).< /p><hr class="line" /><h3>Apache Tomcat/9.0.36</h3></body></html>
搜索后发现方式from-data试发送的数据用的是array格式,而方式为 x-www-form-urlencoded 时需要用key=value&key=value的格式发送,发送的是string型的数据。
调整格式
$headers = array(
'Content-Type: application/x-www-form-urlencoded;charset=UTF-8',
'apikey:' ."",
);
$postdata = array(
"callback" => "",
"type" => "",
"param" =>"",
"prefix"=>"",
);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postdata));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
请求成功!