用新浪微博接口发送图片微博失败的原因
2012-10-31 23:48
537 查看
昨天项目开发时遇到一个发送图片微博失败的奇怪问题,在本机发送图片微博是好的,但是放到测试机就是无法发送,代码如下
但是运行是无法发送成功:
要发送的图片在我的浏览器里是可以访问的,我查看upload的代码发现使用的是file_get_contents函数
于是我在代码里加了
奇怪的是我把url改为绝对路径,却是能够获取到图片
于是我在服务器上测试发现这个域名是使用127.0.0.1,而我的机器上配置的hosts是192.168.60.5
这时我开始怀疑:当访问的服务器ip不是192.168.60.5时会访问到另外一个网站的内容了,因为www.test.com没有使用Flea框架。
查看了一下apache配置,果然:
见最后一行是*: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
本文出自 “一方有” 博客,请务必保留此出处http://yifangyou.blog.51cto.com/900206/1045826
<?php include_once( 'app/config.php' ); include_once( 'app/inc/saetv2.ex.class.php' ); include_once( 'app/inc/RedisSession.php'); $redisSession=new RedisSession($redis); $token=$redisSession->getObject("token"); $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $token['access_token'] ); var_dump($infto = $c->upload("tesdfsssfst","http://www.test.com/192.168.60.103/2012080948f5e0b3-282d-0422-bb4c-6651d7caa6ff.jpg")); ?>
但是运行是无法发送成功:
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函数
于是我在代码里加了
echo file_get_contents("http://www.test.com/192.168.60.103/2012080948f5e0b3-282d-0422-bb4c-6651d7caa6ff.jpg");
奇怪的是我把url改为绝对路径,却是能够获取到图片
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
[root@operation5 conf]# curl -kvL http://www.test.com * About to connect() to www.test.com port 80 * Trying 127.0.0.1... connected * Connected to www.test.com (127.0.0.1) port 80 > GET / HTTP/1.1 > 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 > Host: www.test.com > Accept: */*
这时我开始怀疑:当访问的服务器ip不是192.168.60.5时会访问到另外一个网站的内容了,因为www.test.com没有使用Flea框架。
查看了一下apache配置,果然:
192.168.60.5:80 is a NameVirtualHost default server 192.168.60.5 (/opt/httpd/conf/extra/vhost/_default.conf:1) port 80 namevhost 192.168.60.5 (/opt/httpd/conf/extra/vhost/_default.conf:1) port 80 namevhost www.test.com (/opt/httpd/conf/extra/vhost/www.test.com.conf:1) 192.168.60.5:82 www.test2.com (/opt/httpd/conf/extra/vhost/www.test2.com.conf:18) 192.168.60.5:443 www.test3.com (/opt/httpd/conf/extra/vhost/www.test3.com.conf:74) wildcard NameVirtualHosts and _default_ servers: *:80 www.test4.com(/opt/httpd/conf/extra/vhost/www.test4.com.conf:308) 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
本文出自 “一方有” 博客,请务必保留此出处http://yifangyou.blog.51cto.com/900206/1045826
相关文章推荐
- 新浪微博发布一条微博和图片的接口调用实例
- java实现新浪微博Oauth接口发送图片和文字的方法
- 新浪微博客户端(40)-使用AFN发送带图片的微博
- asp.net后台集成QQ第三方接口含发送微博、带图片微博(有源码)
- easyradius通讯接口 V4全新升级,显示同步失败原因,方便用户寻找故障
- android分享到新浪微博,认证+发送微博,神马'40113token_rejected! Oauth Token不合法'错误,都TMD都是浮云,终于一切搞定!
- Windows图片和传真查看器打开图片是提示“绘图失败”的原因和解决方法
- Android:SNS客户端开发七:发送带图片的微博(一)(调用相机和Gallery获得照片)
- imagejpeg()输出图片失败的原因与解决方法
- sd_setImageWithURL加载图片失败原因以及处理方法
- Android:SNS客户端开发八:发送带图片的微博(二)(发送多媒体的post方法)
- (droid分享)新浪微博开发系列【十】 之发送微博
- 为什么电子邮件发送失败?电子邮件发送失败的原因及解决方法
- 求助:php通过新浪微博接口 api 如果获取某一地区下所有用户的微博列表?或使用包含某一关键词的微博列表
- Django发送多封邮件失败的原因
- Jmail组件发送邮件失败的原因
- 友盟分享——微信、腾讯微博、新浪微博分享失败原因分析
- python+beautifulsoup/xpath实现新浪微博大批量微博发送器
- android分享到新浪微博,认证+发送微博,
- IOS网络请求图片失败原因及解决办法