file_get_contents 获取不了网页内容
服务器在做验签的过程中,经常需要向渠道服务器获取某个用户的信息。一般有两种方法,curl和file_get_contents。
一般情况下,像这样用,不会有问题。
 public function OauthPostExecuteNew($sign,$requestString,$request_serverUrl){
     $opt = array("http"=>array(
         "method"=>"GET",
         "header"=>array("param:".$requestString,"oauthsignature:".$sign),
         "request_fulluri"=>true
         )
     );
     $context = stream_context_create($opt);
     $res=file_get_contents($request_serverUrl, false, $context);
     return $res;
 }
但是由于我司服务器连外网时通过代理,所以在使用stream_context_create时需要带上proxy参数,才能访问到渠道的服务器。
所以在上面代码 $opt 数组中带上"proxy"=>$proxy字段。加上之后发现file_get_contents仍然不能正常验签。
百思不解,遂到官网上来查查file_get_contents,发现并没有关于proxy的解释,然后搜stream_context_create,官方解释有这句话
params必须是 $arr['parameter'] = $value 格式的关联数组。 请参考 context parameters 里的标准资源流参数列表。
那么 我们进入context_parameters 查看参数配置。因为我们使用的是HTTP方式,所以查看HTTP context
查看跟proxy相关的
proxystringURI 指定的代理服务器的地址。(e.g. tcp://proxy.example.com:5100).
request_fulluriboolean当设置为
TRUE时,在构建请求时将使用整个 URI 。(i.e. GET http://www.example.com/path/to/file.html HTTP/1.0)。 虽然这是一个非标准的请求格式,但某些代理服务器需要它。默认值是
FALSE.
发现只配置了proxy,而并没有配置request_fulluri,遂加上request_fulluri=true,验证通过。
注意:使用proxy参数时需要把http 改为tcp 具体什么原因,不知道。等我查到了再到这里更新。
file_get_contents 获取不了网页内容的更多相关文章
- curl 或 file_get_contents 获取需要授权页面的方法
		原文:http://blog.csdn.net/fdipzone/article/details/44475801 红色字体部分是加上自己的注释,整理了一下. 今天因工作需要,需要用 curl / f ... 
- file_get_contents()获取https出现这个错误Unable to find the wrapper “https” – did
		file_get_contents()获取https出现这个错误Unable to find the wrapper “https” – did 解决办法 ,如果你是用的服务器,可以参考这个办法,修改 ... 
- 解析PHP中的file_get_contents获取远程页面乱码的问题【转】
		在工作中,遇到一个问题.我需要将一个网址(该网址是一个json数据的接口,即 打开该网址,在浏览器中显示的是json数据),我使用file_get_contents($url),数据是乱码的. 通过查 ... 
- PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
		PHP CURL与file_get_contents函数都可以获取远程服务器上的文件保存到本地,但在性能上面两者完全不在同一个级别,下面我先来介绍PHP CURL或file_get_contents函 ... 
- PHP下通过file_get_contents\curl的方法实现获取远程网页内容(别忘了还有PhpRPC)
		[php]PHP中file_get_contents()与file_put_contents()函数细节详解 php函数file_get_contents(一) 案例: 早在2010年时候遇到过这样的 ... 
- file_get_contents无法获取数据的一种情况
		下面这段php代码突然不好使了,返回的 $html 为空,百思不得解.网上说法好多,但都是一家之言,解决不了我的问题.(我的解决方法也是一家之言,只能解决file_get_contents获取不到数据 ... 
- file_get_contents函数获取不到数据的一种情况
		问题: file_get_contents($url) 获取不到数据,尽管URL地址正确,函数使用正确.如下代码 $url = "https://www.baidu.com"; ... 
- PHP-CGI 进程 CPU 100% 与 file_get_contents 函数的关系
		[文章作者:张宴 本文版本:v1.0 最后修改:2011.08.05 转载请注明原文链接:http://blog.s135.com/file_get_contents/] 有时候,运行 Nginx.P ... 
- php fopen()和file_get_contents() 区别介绍
		本文章向码农们介绍PHP使用fopen与file_get_contents读取文件实例分享及这两个函数的区别,需要的码农可以参考一下. php中读取文件可以使用fopen和file_get_conte ... 
随机推荐
- C语言  创建一个  txt  文件 bin输入字符 保存文件在工作文件夹里
			int main(void) { char s[70]; FILE *fp; fp=fopen("123.txt","r"); if((fp=fopen(&qu ... 
- 工程和界面—Webstorm入门指南 Webstorm中的工程-备
			1.新建工程 “Quick Start”界面新建工程: 也可以点击顶部菜单栏“File”-> “New Project”. 弹出如下界面: “Location”指向想要创建的工程目录(如果该目录 ... 
- bindingredirect 没有效果
			在搞在线聊天室的时候用到了SignalR 1.1.4,依赖于Newtonsoft.Json 4.5.0.0. 而我另外的dll又依赖Newtonsoft.Json 6.0.0.0 我只引用6.0.0. ... 
- Android surfaceview详解
			周末看<精通Android游戏开发>(Pro Android Games),里面讲到游戏的框架,其中一个重要的概念surfaceview,觉得不是很理解,于是花了一点时间研究了下,写下自己 ... 
- emacs vim IDE
			原本想花点时间来学习下Vim或者emacs,结果在网上搜索到这篇文章 骂战挺多的,但是也长见识 http://bbs.csdn.net/topics/390306165 下面是windows下的ema ... 
- scheme 解释器Guile 使用
			GNU Guile是一种Scheme编程语言的解释器和虚拟机.Guile是GNU Ubiquitous Intelligent Language for Extensions的缩写.Guile是GNU ... 
- android 之 百度地图
			简介 百度地图Android定位SDK为基于移动客户端开发LBS应用提供基础定位能力. 功能介绍 功能介绍: 地图展示:包括2D图.卫星图.3D图地图展示. 地图操作:提供控制平移.缩放.底图旋转.变 ... 
- 开始使用Logstash
			开始使用Logstash 本节将指导处理安装Logstash 和确认一切是运行正常的, 后来的章节处理增加负载的配置来处理选择的使用案例. 这个章节包含下面的主题: Installing Logsta ... 
- poj2823:单调队列入门题
			今天学习了一下单调队列这种数据结构,思想不是很难 参考资料:http://www.cnblogs.com/Jason-Damon/archive/2012/04/19/2457889.html 然后自 ... 
- HDU5044---Tree  树链剖分
			大致题意:add1 u v u到v路径上所有点的权值加上k,add2 u 到v路径上所有边的权值加上k 最后输出所有点的权值,边的权值..树链剖分预处理然后来个线性O(n)的操作.刚开始用线段树 ... 
