php返回302,php使用curl请求返回302(30x)
php使用curl请求返回302(30x)
php使用curl请求返回302(30x)
web站点已开始使用https,但是项目代码里还有遗留的http,由此有了新发现。
先贴代码:
$url = "http://www.baidu.com";
$resultStr = httpRequest($url);
echo $resultStr;
function httpRequest($url, $timeout = 10)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0');
$rawResult = @curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
curl_close($ch);
if ($curl_errno > 0) {
return "Curl Error ($curl_errno): $curl_error\n";
} else {
return $rawResult;
}
}
?>
发现对于能使用https的站点,用浏览器访问时比如http://www.bai.com,会自动跳转至https://www.baidu.com,
而php使用curl时请求http://ww.baidu.com时,只会获取到302 Found(30x),如下图。
这个差异的原因是cURL会话句柄没有设置选项 CURLOPT_FOLLOWLOCATION ,即增加
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
这个选项在官方文档中的说明:
设置之后请求http://www.baidu.com就成功了:
浏览器对于302、307等30x是有做重定向处理的:
以上。
参考博客:https://evertpot.com/curl-redirect-requestbody/
php使用curl请求返回302(30x)相关教程
php返回302,php使用curl请求返回302(30x)相关推荐
- php请求api获取返回值,我用curl请求接口获取返回值,但是不成功,大神给看看怎么调取?...
接口地址 http://mp.vservice.com.cn/service/OutWebService?wsdl 接口调用方 callService(String serviceName,Strin ...
- ajax返回request,WordPress的Ajax请求返回0(Wordpress ajax request return 0)
WordPress的Ajax请求返回0(Wordpress ajax request return 0) 你好,我有一个WordPress的问题我无法获得ajax电话,我找不到原因. 我的查询一直返回 ...
- ajax返回字符串怎么处理,ajax请求返回json字符串/json对象 处理
1. 返回json字符串如何处理 $.ajax({ url:xxx, success:function(date){ }, error:function(){ } }); 通过最原始的返回: Prin ...
- ajax返回失败原因,ajax POST请求返回失败
以下脚本返回失败,即使它曾经起作用: function postToPHP(data_to_send) { $.ajax({ type: "POST", datatype: &qu ...
- java httpclient 302_HttpClient的POST请求返回302解决
原标题:HttpClient的POST请求返回302解决 HttpClient请求POST提示302,而且返回的response中的Localtion是我访问时使用的URL, 例如:我使用的URL是h ...
- php 访问url获得返回值,如何在curl php请求中获取数组值作为返回值?
我很难使用curl PHP,因为我是 PHP新手.问题是我没有从curl请求中获得任何返回值.我正在访问的远程文件具有以下代码: test.php的: $test->getCall(); pub ...
- PHP微信支付 curl请求https://api.mch.weixin.qq.com/pay/unifiedorder 返回空的解决方案
PHP微信支付 curl请求https://api.mch.weixin.qq.com/pay/unifiedorder 返回空的解决方案 这个问题是我在生成微信支付二维码的时候碰到的,起初代码都是正 ...
- http请求返回302处理方案
http发送淘宝客短链,请求返回302重定向,需要经过几次跳转后,最终得到请求返回内容.代码如下: import java.net.HttpURLConnection; import java.net ...
- php 打印curl请求的header信息和返回的header信息
1.打印curl请求的header信息 在执行curl请求curl_exec($ch)前的代码中,添加如下配置: //设置为true时追踪句柄的请求字符串,从 PHP 5.1.3 开始支持,就是允许你 ...
最新文章
- QT学习之图形视图框架
- 基于卷积神经网络的垃圾图像分类算法
- 13.最为经典的动态规划入门
- 马斯克的星际飞船SN10又炸了,但技术却向前迈出一大步!
- 从零到百亿互联网金融架构发展史---架构变迁
- vsim生成VCD波形文件(verilog)
- JQuery实现树的功能doc
- linux下启动oracle服务
- Shell编程——shell常用命令
- Linux awk命令详解??????????(研究)
- 给数值加上千分位的php程序,JavaScript_js 实现数值的千分位及保存小数方法(推荐),实例如下:/*** 将数 - phpStudy...
- 让旧 Windows 电脑一键变成 Chromebook,Google 收购 Neverware!
- Openresty支持HTTP2
- hackintosh黑苹果_如何构建用于编码的Hackintosh
- 举例说明儿化音的作用_六年级语文下学期复习资料
- 使用 RabbitMQ 实现 RPC
- requestLayout() improperly called by…view.NoScrollGridView during layout: running second layout pass
- 浮点型数据存储方式浅析
- pytorch自动下载的权重保存位置
- K型热电偶(k-type)温度与电压转换计算笔记