php怎么发送http请求并接收返回值
3个回答
展开全部
摘一段代码给你。请参考。
/**
* Curl 远程post请求
* @param type $get_url 请求url
* @param type $postdata 请求参数
* @return boolean
*/
function postCurlDatas($get_url, $postdata = '', $other_options = array()) {
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $get_url); // 要访问的地址
// curl_setopt($curl, CURLOPT_USERAGENT, $GLOBALS ['user_agent']);
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt($curl, CURLOPT_POST, true); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_DNS_USE_GLOBAL_CACHE, false); // 禁用全局DNS缓存
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); //此参数必须在上面的参数之后,切记
if (!empty($other_options['userpwd'])) {
curl_setopt($curl, CURLOPT_USERPWD, $other_options['userpwd']);
}
if (!empty($other_options['time_out'])) {
curl_setopt($curl, CURLOPT_TIMEOUT, $other_options['time_out']);
} else {
curl_setopt($curl, CURLOPT_TIMEOUT, 5); // 设置超时限制防止死循环
}
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$ret = curl_exec($curl); // 执行操作
if ($ret === false) {
echo 'Curl error: ' . curl_error($curl);
curl_close($curl);
return false;
}
if ($other_options['return_detail'] == true) {
$detail = curl_getinfo($curl);
if (is_array($detail)) {
$detail['return_content'] = $ret;
}
$ret = $detail;
}
curl_close($curl); // 关闭CURL会话
return $ret;
}
/**
* Curl 远程post请求
* @param type $get_url 请求url
* @param type $postdata 请求参数
* @return boolean
*/
function postCurlDatas($get_url, $postdata = '', $other_options = array()) {
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $get_url); // 要访问的地址
// curl_setopt($curl, CURLOPT_USERAGENT, $GLOBALS ['user_agent']);
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt($curl, CURLOPT_POST, true); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_DNS_USE_GLOBAL_CACHE, false); // 禁用全局DNS缓存
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); //此参数必须在上面的参数之后,切记
if (!empty($other_options['userpwd'])) {
curl_setopt($curl, CURLOPT_USERPWD, $other_options['userpwd']);
}
if (!empty($other_options['time_out'])) {
curl_setopt($curl, CURLOPT_TIMEOUT, $other_options['time_out']);
} else {
curl_setopt($curl, CURLOPT_TIMEOUT, 5); // 设置超时限制防止死循环
}
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$ret = curl_exec($curl); // 执行操作
if ($ret === false) {
echo 'Curl error: ' . curl_error($curl);
curl_close($curl);
return false;
}
if ($other_options['return_detail'] == true) {
$detail = curl_getinfo($curl);
if (is_array($detail)) {
$detail['return_content'] = $ret;
}
$ret = $detail;
}
curl_close($curl); // 关闭CURL会话
return $ret;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询