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

简介:

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

 


 
 
  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,如需转载请自行联系原作者




相关文章
|
机器学习/深度学习 人工智能 自然语言处理
PGL图学习之图神经网络GNN模型GCN、GAT[系列六]
本次项目讲解了图神经网络的原理并对GCN、GAT实现方式进行讲解,最后基于PGL实现了两个算法在数据集Cora、Pubmed、Citeseer的表现,在引文网络基准测试中达到了与论文同等水平的指标。 目前的数据集样本节点和边都不是很大,下个项目将会讲解面对亿级别图应该如何去做。
|
SQL 监控 数据可视化
数据中台如何实现数据共享?用这个工具即可
DataAPI,通过双模式可视化配置生成与注册API,快速构建Oneservice数据服务,形成企业级的API市场和API服务管理平台,提高数据开放与共享效率
5677 0
|
5月前
|
机器学习/深度学习 算法 数据挖掘
MyEMS 开源能源管理系统:跨领域能效优化的技术实践与价值落地
MyEMS 是一款开源能源管理系统,采用模块化设计与多维数据分析,广泛应用于工业、建筑、医疗等领域。通过数据驱动与标准对标,助力能效管理从被动监测转向主动优化,提升能源利用效率,满足 ISO 50001、GB/T 等标准要求,提供灵活可迭代的智能化解决方案。
132 0
|
安全 Java API
基于Spring Boot REST API设计指南
【10月更文挑战第10天】 在现代Web应用开发中,RESTful API扮演着至关重要的角色。Spring Boot作为一个高效、便捷的Java开发框架,为构建RESTful API提供了强大的支持。本文将分享基于Spring Boot的REST API设计指南,涵盖从项目初始化到API文档配置的全过程。
352 0
|
存储 Shell 开发工具
查看git 的远程地址
在Git中,你可以通过几种不同的命令来查看远程仓库的地址。以下是一些常用的方法: ### 1. 使用`git remote -v`命令 这是查看远程仓库地址最常用的命令。它会列出所有远程仓库的名称(如`origin`)以及对应的URL(包括fetch和push的URL,如果它们不同的话)。 ```bash git remote -v ``` 输出示例: ``` origin https://github.com/username/repo.git (fetch) origin https://github.com/username/repo.git (push) ``` ###
2885 12
|
运维 监控 Linux
解决CPU与带宽高使用率问题:深入分析与应对策略
引言:性能问题的诊断与优化 在运维工作中,操作系统性能问题如影随形,典型代表是CPU使用率高和带宽使用率高的问题,它们直接影响应用的性能和响应时间。这篇记录将逐个分析这两个问题的产生原因和解决方法。
解决CPU与带宽高使用率问题:深入分析与应对策略
|
前端开发 JavaScript 安全
深入解析 http 协议
HTTP(超文本传输协议)不仅用于传输文本,还支持图片、音频和视频等多种类型的数据。当前广泛使用的版本为 HTTP/1.1。HTTPS 可视为 HTTP 的安全增强版,主要区别在于添加了加密层。HTTP 请求和响应均遵循固定格式,包括请求行/状态行、请求/响应头、空行及消息主体。URL(统一资源定位符)用于标识网络上的资源,其格式包含协议、域名、路径等信息。此外,HTTP 报头提供了附加信息,帮助客户端和服务端更好地处理请求与响应。状态码则用于指示请求结果,如 200 表示成功,404 表示未找到,500 表示服务器内部错误等。
485 0
深入解析 http 协议
|
机器学习/深度学习 存储 算法框架/工具
【深度学习】猫狗识别TensorFlow2实验报告
本文介绍了使用TensorFlow 2进行猫狗识别的实验报告,包括实验目的、采用卷积神经网络(CNN)进行训练的过程,以及如何使用交叉熵作为损失函数来识别猫狗图像数据集。
608 1
|
Java 中间件 应用服务中间件
代码层面的读写分离vs使用proxysql
代码层面的读写分离vs使用proxysql
259 0
|
存储 Linux 数据安全/隐私保护
Star 21.8k!推荐一款实用的免费开源局域网传输工具!轻松搭建网盘的神器!
Star 21.8k!推荐一款实用的免费开源局域网传输工具!轻松搭建网盘的神器!
399 1