android 发 HTTP 请求上传图片时,用网站地址发不同,只能用 IP 地址发(经 Nginx) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
GaryZ
V2EX    程序员

android 发 HTTP 请求上传图片时,用网站地址发不同,只能用 IP 地址发(经 Nginx)

  •  
  •   GaryZ 2015-03-25 09:17:44 +08:00 3507 次点击
    这是一个创建于 3882 天前的主题,其中的信息可能已经有所发展或是发生改变。

    android 实现上传图片到服务端,用到了httpmime这个包,发送复杂格式的数据到服务端,正常测试环境都没有问题,但是在正式环境上HTTP求情就发送不过去,后来检查如果把http请求的地址改成服务器IP地址就没问题,请问这是什么原因? 是android 的原因还是Nginx的原因? 如何解决?

    第 1 条附言    2015-03-25 09:59:51 +08:00
    抱歉,各位,可能描述的不太多,正文说“发送不过去” 说的不正确。

    应该改为“如果我用 域名发送请求,能到达Nginx,之后就没了。如果我用IP发请求,就会正常,啥问题都没有。"
    第 2 条附言    2015-03-25 10:36:00 +08:00
    谢谢各位!问题找到了。Nginx1.3.9以下版本都存在当用户POST一个带有文件的请求的时候,出现HTTP 411错误。所以提交都失败了。需要打补丁。 资料:http://blog.prosight.me/blogs/1154/

    谢谢各位帮忙!
    18 条回复    2015-03-26 02:33:05 +08:00
    jokester
        1
    jokester  
       2015-03-25 09:21:15 +08:00
    did the request reached nginx? have you looked at the request?
    ETiV
        2
    ETiV  
       2015-03-25 09:23:31 +08:00 via iPhone
    服务器在哪?域名是否备案?
    GaryZ
        3
    GaryZ  
    OP
       2015-03-25 09:35:56 +08:00
    @jokester yes.it is.

    @ETiV 服务器就在隔壁,已备案,网站都已经上线了
    ETiV
        4
    ETiV  
       2015-03-25 09:44:26 +08:00 via iPhone
    在本地用curl之类的模拟提交一次?

    “发送不过去”的描述不是很准确,是断网后发不出去?还是域名解析不了发不出去?还是发出去了,服务器响应有问题?
    lfzyx
        5
    lfzyx  
       2015-03-25 09:47:59 +08:00
    看nginx 的日志
    GaryZ
        6
    GaryZ  
    OP
       2015-03-2509:49:46 +08:00
    @ETiV 如果我用 域名发送请求,能到达Nginx,之后就没了。如果我用IP发请求,就会正常,啥问题都没有。
    jokester
        7
    jokester  
       2015-03-25 09:51:29 +08:00
    顶楼说"发送不过去"
    下面又说请求到nginx了
    找人帮忙至少把事情说清楚吧。。
    GaryZ
        8
    GaryZ  
    OP
       2015-03-25 10:00:11 +08:00
    @jokester 不好意思,描述的不太正确。见谅
    aru
        9
    aru  
       2015-03-25 10:05:39 +08:00
    先试试在android里面用域名下载网站里面的一个图片
    ETiV
        10
    ETiV  
       2015-03-25 10:06:33 +08:00 via iPhone
    那就看看nginx的log吧,都打开。

    其实你自己会诊断问题,一般都不需要求助别人了~
    virusdefender
        11
    virusdefender  
       2015-03-25 10:14:53 +08:00
    这种问题应该好解决~先写个html或者js上传试试
    thyrlian
        12
    thyrlian  
       2015-03-25 10:15:17 +08:00
    用CharlesProxy或者Wireshark监听, 看你的Request Payload和Response Header/Body返回信息究竟如何.
    ryd994
        13
    ryd994  
       2015-03-25 11:40:04 +08:00
    这是一个修复chunked支持的补丁,没有解释为什么用域名就不行啊?
    GaryZ
        14
    GaryZ  
    OP
       2015-03-25 12:25:57 +08:00
    @ryd994 错误码411 错误解释是(需要有效长度) 服务器不会接受包含无效内容长度标头字段的请求。也就是说这个版本的Nginx 不支持文件数据形式的HTTP请求吧
    aheadlead
        15
    aheadlead  
       2015-03-25 14:12:53 +08:00
    @icedx 来看看
    ryd994
        16
    ryd994  
       2015-03-25 15:01:29 +08:00   1
    @GaryZ 对,因为不支持chunked encoding。问题是,为什么域名就不行?为什么用IP就行?除了Host头,其他在http协议上应该都一样。说明你没找到实际原因啊。为什么对IP没用chunked encoding?还是说你test case没覆盖?
    GaryZ
        17
    GaryZ  
    OP
       2015-03-25 15:56:54 +08:00
    @ryd994 根本原因的确不是特别明白,用IP可以是因为用IP发请求,没经过Nginx转发啊。对吧?
    ryd994
        18
    ryd994  
       2015-03-26 02:33:05 +08:00
    @GaryZ 你是说你直接请求后端么?请求反代服务器的IP会怎么样?域名解析出来是哪个IP就往哪个IP发
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2464 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 04:27 PVG 12:27 LAX 20:27 JFK 23:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86