Python + Curl-如何修复“来自服务器的空回复”

时间:2019-05-05 09:27:36

标签: python curl

我使用https://gist.github.com/bradmontgomery/2219997 python代码来设置http服务器。 对于我的用途,我只需在'do_POST'方法中添加几行:

def do_POST(self):
        self._set_headers()
        self.wfile.write("POST!")
        content_length = int(self.headers['Content-Length'])
        print(content_length )
        post_data = self.rfile.read(content_length)
        print(post_data)

我想通过Curl发送文件:

curl -F "file=@file.txt" "http://myServer.noip.me:22222/" --trace-ascii debugdump.txt

客户端:卷曲响应为:

 curl: (52) Empty reply from server

服务器端:服务器打印content_length值,然后完全挂在“ self.rfile.read(content_length)”行。它不打印'print(post_data)'。

双方的防火墙均已禁用。

debugdump.txt中的最后几行(客户端):

== Info: Empty reply from server
== Info: Connection #0 to host myServer.noip.me left intact

我想念什么?

1 个答案:

答案 0 :(得分:1)

Empty reply from server意味着服务器关闭连接而没有响应任何,这是违反HTTP协议的行为。

使用适当的服务器永远都不会发生这种情况,因此这表明服务器端发生了严重错误。

有时发生这种情况是因为服务器是天真的实现的,并且由于来自客户端的意外请求而崩溃或行为异常。那么,使此工作正常进行的最佳机会就是尝试以某种方式更改请求,使其与写得不好的服务器软件可能期望的方式更加相似。

这是一个猜测的问题。或者做正确的事并与服务器管理员联系,让他们修复服务器。