【PHP】用curl获取天气数据,为啥只有北京的天气数据

[复制链接]
查看11 | 回复9 | 2021-1-27 07:01:47 | 显示全部楼层 |阅读模式

————————————————————————————————————————————————

分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:01:47 | 显示全部楼层
用浏览器试你的代码没有问题
回复

使用道具 举报

千问 | 2021-1-27 07:01:47 | 显示全部楼层
引用1楼jordan102的回复:用浏览器试你的代码没有问题
我用浏览器运行也是北京的数据~~~除了我在浏览器输入http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=上海才会出来上海的信息
回复

使用道具 举报

千问 | 2021-1-27 07:01:47 | 显示全部楼层
去掉
curl_setopt($curlobj,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8","Content-length:".strlen($data)));
这句多余,留着虽没影响,但总是别别扭扭的
如果程序文件是gbk的,要转码
$data=iconv('gbk','utf-8','theCityName=上海');
其实只要这样就可以了$curlobj=curl_init();
curl_setopt($curlobj,CURLOPT_URL,"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?$data");
curl_setopt($curlobj,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
curl_setopt($curlobj,CURLOPT_HEADER,0);
curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,1);
$rtn=curl_exec($curlobj);
他是WebService服务,提供有SOAP1.1、SOAP1.2、GET、POST四种方式
回复

使用道具 举报

千问 | 2021-1-27 07:01:47 | 显示全部楼层
引用3楼xuzuning的回复:去掉
curl_setopt($curlobj,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8","Content-length:".strlen($data)));
这句多余,留着虽没影响,但总是别别扭扭的
如果程序文件是gbk的,要转码
$data=iconv('gbk','utf-8','theCityName=上海');
其实只要这样就可以了$curlobj=curl_init();
curl_setopt($curlobj,CURLOPT_URL,"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?$data");
curl_setopt($curlobj,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
curl_setopt($curlobj,CURLOPT_HEADER,0);
curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,1);
$rtn=curl_exec($curlobj);
他是WebService服务,提供有SOAP1.1、SOAP1.2、GET、POST四种方式

引用3楼xuzuning的回复:去掉
curl_setopt($curlobj,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8","Content-length:".strlen($data)));
这句多余,留着虽没影响,但总是别别扭扭的
如果程序文件是gbk的,要转码
$data=iconv('gbk','utf-8','theCityName=上海');
其实只要这样就可以了$curlobj=curl_init();
curl_setopt($curlobj,CURLOPT_URL,"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?$data");
curl_setopt($curlobj,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
curl_setopt($curlobj,CURLOPT_HEADER,0);
curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,1);
$rtn=curl_exec($curlobj);
他是WebService服务,提供有SOAP1.1、SOAP1.2、GET、POST四种方式


$_SERVER['HTTP_USER_AGENT']这句话在cmd运行php文件时没办法识别HTTP_USER_AGENT~所以我直接吧这句话输出了之后复制上去了~我明天会试试的~因为今天访问次数过多已经被限制访问了
回复

使用道具 举报

千问 | 2021-1-27 07:01:47 | 显示全部楼层
直接写也没事,不是麻烦吗?

回复

使用道具 举报

千问 | 2021-1-27 07:01:47 | 显示全部楼层
引用5楼xuzuning的回复:直接写也没事,不是麻烦吗?

会这样~~~
回复

使用道具 举报

千问 | 2021-1-27 07:01:47 | 显示全部楼层
写上就是了
不是浏览器,哪来的HTTP_USER_AGENT

回复

使用道具 举报

千问 | 2021-1-27 07:01:47 | 显示全部楼层
好久没来学习了进来学习一下
回复

使用道具 举报

千问 | 2021-1-27 07:01:47 | 显示全部楼层
引用7楼xuzuning的回复:写上就是了
不是浏览器,哪来的HTTP_USER_AGENT


很奇怪,今天就可以了!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行