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)相关推荐

  1. php请求api获取返回值,我用curl请求接口获取返回值,但是不成功,大神给看看怎么调取?...

    接口地址 http://mp.vservice.com.cn/service/OutWebService?wsdl 接口调用方 callService(String serviceName,Strin ...

  2. ajax返回request,WordPress的Ajax请求返回0(Wordpress ajax request return 0)

    WordPress的Ajax请求返回0(Wordpress ajax request return 0) 你好,我有一个WordPress的问题我无法获得ajax电话,我找不到原因. 我的查询一直返回 ...

  3. ajax返回字符串怎么处理,ajax请求返回json字符串/json对象 处理

    1. 返回json字符串如何处理 $.ajax({ url:xxx, success:function(date){ }, error:function(){ } }); 通过最原始的返回: Prin ...

  4. ajax返回失败原因,ajax POST请求返回失败

    以下脚本返回失败,即使它曾经起作用: function postToPHP(data_to_send) { $.ajax({ type: "POST", datatype: &qu ...

  5. java httpclient 302_HttpClient的POST请求返回302解决

    原标题:HttpClient的POST请求返回302解决 HttpClient请求POST提示302,而且返回的response中的Localtion是我访问时使用的URL, 例如:我使用的URL是h ...

  6. php 访问url获得返回值,如何在curl php请求中获取数组值作为返回值?

    我很难使用curl PHP,因为我是 PHP新手.问题是我没有从curl请求中获得任何返回值.我正在访问的远程文件具有以下代码: test.php的: $test->getCall(); pub ...

  7. PHP微信支付 curl请求https://api.mch.weixin.qq.com/pay/unifiedorder 返回空的解决方案

    PHP微信支付 curl请求https://api.mch.weixin.qq.com/pay/unifiedorder 返回空的解决方案 这个问题是我在生成微信支付二维码的时候碰到的,起初代码都是正 ...

  8. http请求返回302处理方案

    http发送淘宝客短链,请求返回302重定向,需要经过几次跳转后,最终得到请求返回内容.代码如下: import java.net.HttpURLConnection; import java.net ...

  9. php 打印curl请求的header信息和返回的header信息

    1.打印curl请求的header信息 在执行curl请求curl_exec($ch)前的代码中,添加如下配置: //设置为true时追踪句柄的请求字符串,从 PHP 5.1.3 开始支持,就是允许你 ...

最新文章

  1. QT学习之图形视图框架
  2. 基于卷积神经网络的垃圾图像分类算法
  3. 13.最为经典的动态规划入门
  4. 马斯克的星际飞船SN10又炸了,但技术却向前迈出一大步!
  5. 从零到百亿互联网金融架构发展史---架构变迁
  6. vsim生成VCD波形文件(verilog)
  7. JQuery实现树的功能doc
  8. linux下启动oracle服务
  9. Shell编程——shell常用命令
  10. Linux awk命令详解??????????(研究)
  11. 给数值加上千分位的php程序,JavaScript_js 实现数值的千分位及保存小数方法(推荐),实例如下:/*** 将数 - phpStudy...
  12. 让旧 Windows 电脑一键变成 Chromebook,Google 收购 Neverware!
  13. Openresty支持HTTP2
  14. hackintosh黑苹果_如何构建用于编码的Hackintosh
  15. 举例说明儿化音的作用_六年级语文下学期复习资料
  16. 使用 RabbitMQ 实现 RPC
  17. requestLayout() improperly called by…view.NoScrollGridView during layout: running second layout pass
  18. 浮点型数据存储方式浅析
  19. pytorch自动下载的权重保存位置
  20. K型热电偶(k-type)温度与电压转换计算笔记

热门文章

  1. 用python玩转数据第四周答案_大学mooc用Python玩转数据章节答案
  2. Redis BigKey介绍
  3. 探索样机在创新中的关键角色,文章深入解析!
  4. Java实现 蓝桥杯 基础练习 字母图形
  5. RTP库jrtplib介绍
  6. Spring多数据源TransactionManager冲突解决方案
  7. STC15单片机-看门狗介绍
  8. 单片机最小系统 原理图详解 PCB操作 个人备忘
  9. 爪爪博士:教你怎样去读懂猫咪的语言
  10. eclipse安装freemarker IDE插件