PHP使用curl提交POST数据,为什么打印出curl_exec($ch)是400 Bad Request,求解答!
[php] view plain copy print?在CODE上查看代码片派生到我的代码片
<?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, 'http://www.domain.com/');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_POST, 1 );//设置post请求
curl_setopt($ch, CURLOPT_HEADER, 0 ) ;
curl_setopt($ch,CURLOPT_POSTFIELDS, "param=".$param);//param为请求的参数
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>
/**
*
* @Description 批量请求获得内容
* @param @param array $urls
* @param @param String $param
* @return String
*/
public function remoteByRolling($urls, $param) {
if (! is_array ( $urls ) || count ( $urls ) == 0)
return false;
$queue = curl_multi_init ();
$map = array ();
foreach ( $urls as $url ) {
$this->remoteByPost ( $url, $param );
curl_multi_add_handle ( $queue, $this->ch );
$map [$url] = $this->$ch;
}
$active = null;
// 执行批处理句柄
do {
$mrc = curl_multi_exec ( $queue, $active );
} while ( $mrc == CURLM_CALL_MULTI_PERFORM );
while ( $active > 0 && $mrc == CURLM_OK ) {
//curl_multi_select:等待所有cURL批处理中的活动连接
if (curl_multi_select ( $queue, 0.5 ) != - 1) {
do {
$mrc = curl_multi_exec ( $queue, $active );
} while ( $mrc == CURLM_CALL_MULTI_PERFORM );
}
}
/* get data */
$responses = array ();
foreach ( $map as $url => $ch ) {
if (curl_error ( $ch ) == '') {
$responses [$url] = curl_multi_getcontent ( $ch ) ;
}else{
error_log("curl error");
}
curl_multi_remove_handle ( $queue, $ch );
curl_close ( $ch );
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。