用新浪微博接口发送图片微博失败的原因-阿里云开发者社区

开发者社区> 技术小胖子> 正文

用新浪微博接口发送图片微博失败的原因

简介:
+关注继续查看

昨天项目开发时遇到一个发送图片微博失败的奇怪问题,在本机发送图片微博是好的,但是放到测试机就是无法发送,代码如下

 


  1. <?php  
  2. include_once'app/config.php' );  
  3. include_once'app/inc/saetv2.ex.class.php' );  
  4. include_once'app/inc/RedisSession.php');  
  5. $redisSession=new RedisSession($redis);  
  6. $token=$redisSession->getObject("token");  
  7. $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $token['access_token'] );  
  8. var_dump($infto = $c->upload("tesdfsssfst","http://www.test.com/192.168.60.103/2012080948f5e0b3-282d-0422-bb4c-6651d7caa6ff.jpg"));  
  9. ?> 

但是运行是无法发送成功:

 


  1. array(3) { ["error"]=> string(50) "unsupported image type, only suport JPG, GIF, PNG!" ["error_code"]=> int(20005) ["request"]=> string(23) "/2/statuses/upload.json" } 

要发送的图片在我的浏览器里是可以访问的,我查看upload的代码发现使用的是file_get_contents函数
于是我在代码里加了
 

  1. echo file_get_contents("http://www.test.com/192.168.60.103/2012080948f5e0b3-282d-0422-bb4c-6651d7caa6ff.jpg"); 

奇怪的是我把url改为绝对路径,却是能够获取到图片

 


  1. echo file_get_contents("/opt/htdocs/www.test.com/192.168.60.103/2012080948f5e0b3-282d-0422-bb4c-6651d7caa6ff.jpg"); 

于是我在服务器上测试发现这个域名是使用127.0.0.1,而我的机器上配置的hosts是192.168.60.5

 


  1. [root@operation5 conf]# curl -kvL http://www.test.com  
  2. * About to connect() to www.test.com port 80  
  3. * Trying 127.0.0.1... connected  
  4. * Connected to www.test.com (127.0.0.1) port 80  
  5. > GET / HTTP/1.1  
  6. User-Agent: curl/7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5  
  7. > Host: www.test.com  
  8. > Accept: */* 

这时我开始怀疑:当访问的服务器ip不是192.168.60.5时会访问到另外一个网站的内容了,因为www.test.com没有使用Flea框架。
查看了一下apache配置,果然:
 

  1. 192.168.60.5:80 is a NameVirtualHost  
  2.          default server 192.168.60.5 (/opt/httpd/conf/extra/vhost/_default.conf:1)  
  3.          port 80 namevhost 192.168.60.5 (/opt/httpd/conf/extra/vhost/_default.conf:1)  
  4.          port 80 namevhost www.test.com (/opt/httpd/conf/extra/vhost/www.test.com.conf:1)  
  5. 192.168.60.5:82 www.test2.com (/opt/httpd/conf/extra/vhost/www.test2.com.conf:18)  
  6. 192.168.60.5:443 www.test3.com (/opt/httpd/conf/extra/vhost/www.test3.com.conf:74)  
  7. wildcard NameVirtualHosts and _default_ servers:  
  8. *:80 www.test4.com(/opt/httpd/conf/extra/vhost/www.test4.com.conf:308)  
  9. Syntax OK 
见最后一行是*:80,所以就出现配hosts:www.test.com 127.0.0.1时,访问www.test.com访问到的内容为www.test4.com的内容
把*:80改为192.168.60.5:80就好了
或者把所有的192.168.60.5:80都改为*:80;
所以是用*.80还是ip:80必须要统一否则出现莫名其妙的问题

end




     本文转自yifangyou 51CTO博客,原文链接:http://blog.51cto.com/yifangyou/1045826,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里大鱼短信发送接口开发
一、 API接口介绍 alibaba.aliqin.fc.sms.num.send (短信发送) 向指定手机号码发送模板短信,模板内可设置部分变量。使用前需要在阿里大于管理中心添加短信签名与短信模板。
10845 0
在使用蓝牙接口,遇到IOS下正常,Android下不正常的简易处理方法
如果遇到以上的情况怎么办,先确定下在调试的时候是否打开了调试面板, 如果有打开请关闭调试面板看是否还有问题,目前在安卓上打开调试面板是会有影响到蓝牙接口的使用,从之前遇到过这些问题的统计中也确实是因为这个原因
238 0
Elasticsearch 指南 [7.0] - Document APIs 文档接口
Elasticsearch 指南 [7.0] - Document APIs 文档接口
3296 0
新浪微博Python客户端接口OAuth2
Keyword: Python Oauth2 微博 sina weibo   #!/usr/bin/env python # -*- coding: utf-8 -*- __version__ = '1.
993 0
使用扩展方法来扩展接口
不清楚扩展方法的清先预热下 推荐:http://www.cnblogs.com/luluping/archive/2008/05/26/1207530.html 摘抄:http://www.cnblogs.com/luluping/archive/2008/05/26/1207536.html 1、扩展方法跟原来类的方法重名时候的处理逻辑 2、扩展方法的嵌套 现在我们来看扩展方法使用的第三个场景:使用扩展方法来扩展接口 应用场景举例: 我们有时候会发现最初定义的一个接口,在现在环境下,这个接口需要再增加一个函数。
690 0
验签失败自查方案-支付宝接口常见错误系列
说明:   验签只需要使用到支付宝公钥 错误原因:   1.支付宝公钥使用错误导致   2.验签方法使用错误   3.参数错误导致,例如乱码,带自定义参数,编码格式。 自查流程(按照推荐流程检查)   第一步(重点检查):支付宝公钥使用是否错误参考这个帖子自查:[url]https://openclub.
1496 0
新浪微博Python3客户端接口OAuth2
Keyword: Python3 Oauth2 新浪微博 本接口基于廖雪峰的weibo python SDK修改完成,其sdk为新浪官方所推荐,原作者是用python2写的 经过一些修改,这里提供基于python3的 weibo SDK     #!/usr/bin/env python # -*- coding: utf-8 -*- __version__ = '1.
1046 0
利用新浪微博接口生成漂亮的微博卡片
新浪微博开放平台(http://open.weibo.com/)提供了大量的接口API,如粉丝,微博,评论,用户读取等26个接口,共分为微博相关API,公共服务API,地理信息API等三大板块API。开发者只需注册开放平台App Key,即可利用开放平台提供的API测试工具测试各个不同的接口。
1370 0
13262
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载