php curl post請求返回400 bad request
阿新 • • 發佈:2018-12-17
- php post請求返回400 bad request,程式碼如下:
/** * 模擬post進行url請求 * @param string $url * @param array $post_data */ function request_post($url = '', $post_data = array()) {//url為必傳 如果該地址不需要引數就不傳 if (empty($url)) { return false; } if(!empty($post_data)){ $params = ''; foreach ( $post_data as $k => $v ) { $params.= "$k=" . urlencode($v). "&" ; // $params.= "$k=" . $v. "&" ; } $params = substr($params,0,-1); } $ch = curl_init();//初始化curl curl_setopt($ch, CURLOPT_URL,$url);//抓取指定網頁 curl_setopt($ch, CURLOPT_HEADER, 0);//設定header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求結果為字串且輸出到螢幕上 curl_setopt($ch, CURLOPT_POST, 1);//post提交方式 if(!empty($post_data))curl_setopt($ch, CURLOPT_POSTFIELDS, $params); $data = curl_exec($ch);//執行curl curl_close($ch); return $data; }
- 在windows上執行正常,在Linux上就一直報400,後來查到是
curl_setopt($ch, CURLOPT_POST, 1);
這段程式碼的問題,可能是我的地址不用加請求引數,所以不用加這段程式碼。有這段程式碼,如果沒有請求引數在Linux上會返回400。