苦闷啊,请高手帮忙了。:-(在写一个代码,用来接收合作方的数据,对方是unix服务器,用的http1.0协议,在数据传输时,没有带相关的头,在请求我的页面时,出现411错误,日志文件HTTPERR中可以看到相关日志,如下:
2008-02-25 05:32:01 211.152.11.209 34487 221.130.180.109 8088 HTTP/1.0 POST /coop.aspx?param1=ST2873&param2=1065&param3=%31%36%30%34&param4=&param5=13302814652393953651&param6=QWST&param7=0022748060&param8=201100 411 - LengthRequired -折腾了两天了,也没有解决问题,跪求路过的大哥们帮忙了,分儿不够再加

解决方案 »

  1.   

    411  Length Required  服务器不能处理请求,除非客户发送一个Content-Length头。(HTTP 1.1)
      

  2.   

    HTTP/1.0每次传送文件都是从文件头开始,即0字节处开始。RANGE:bytes=XXXX表示要求服务器从文件XXXX字节处开始传送.
    不知道说的对不对
      

  3.   

    对方不给传数据Content-Length,不知道该怎么处理了呀
      

  4.   

    HTTP/1.0的POST请求中,必须指定合法的内容长度,建议抓一下包,看看有没有content length
      

  5.   

    1)你确定你这个页面是接受Post的包吧。(是GET,还是Post)
    2) 看起来他的这个请求就有问题,他应该用GET方法啊(应该有个?).
    3) 你服务器是什么?Content-Length 在HTTP/1.0里面也是必须的,对于Post方法来说。RFC里面说的很清楚。http://www.w3.org/Protocols/HTTP/1.0/draft-ietf-http-spec.html#POST
    4)从那的log中,这个包以前的几个包是什么?
    5)让他安装抓包软件,把所有的Package都send给你,就能搞清楚是什么问题了。不过,我总体感觉,他把那个POST换成GET说不定就解决问题了。
      

  6.   

    有90%的可能我说的是对的。刚才我对google做了一个测试。这个GET是对的。GET /search?hl=en&q=google&btnG=Google+Search&meta= HTTP/1.1
    Host: www.google.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
    Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://www.google.com/然后我用Post重新发了一下这个包,就出现了你说的那个错误:    Length Required
        POST requests require a Content-length header.同样的测试,在微软的网站上就出了400的错误Bad Request
    Your browser sent a request that this server could not understand.