如何通过Python的BaseHTTPRequestHandler类接收文件?

Ben

新手提问。BaseHTTPRequestHandler和接收数据...

我一直在使用BaseHTTPRequestHandler来接收作为数据传递到我的URI的JSON字符串。现在,我需要同时接收JSON字符串和ascii文件。如何得知我已经收到JSON数据和单独的平面文件?如何访问文件中的数据?

如果我收到多个文件怎么办?

顺便说一句,我只是通过从Postman调用URI来运行测试,并看到以下标头:

headers: Host: localhost:6081

Content-Type: application/x-www-form-urlencoded

User-Agent: python-requests/2.2.1 CPython/3.4.0 Linux/3.13.0-35-generic

Accept: */*

Accept-Encoding: gzip, deflate, compress

Content-Length: 403

谢谢!

Ben

Ben

答案在CGI库中。请参阅以下StackOverflow帖子:Simple Python WebServer该帖子中的第二个答案对我们最有用。

这是一些测试代码,对于打印出幕后发生的事情,您可能会发现它们很有用,尤其是当您试图在一篇文章中接收多个文件时:

        print("command: " + self.command + "\npath: " + self.path + "\nrequest_version: " \
            + self.request_version + "\nheaders: " + str(self.headers))
        form = cgi.FieldStorage(
            fp=self.rfile,
            headers=self.headers,
            environ={'REQUEST_METHOD': 'POST',
                     'CONTENT_TYPE': self.headers['Content-Type'],
                     })
        print("\nform:", str(form))
        print("\nform['file'].filename:", form['file'].filename)
        filename = form['file'].filename
        data = form['file'].file.read()
        open("/tmp/%s" % filename, "wb").write(data)
        print('\ndata:', data)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过Python的BaseHTTPRequestHandler类接收文件?

来自分类Dev

通过InputStream接收文件时如何检测文件结尾

来自分类Dev

监控通过蓝牙接收文件

来自分类Dev

如何使用 BlueDevil 接收文件?

来自分类Dev

如何从 Intent 接收文件路径

来自分类Dev

如何检测浏览器是否能够通过拖放来接收文件

来自分类Dev

如何检测浏览器是否能够通过拖放来接收文件

来自分类Dev

使用C#通过LAN向Python发送/接收文件

来自分类Dev

使用C#通过LAN向Python发送/接收文件

来自分类Dev

VideoView通过套接字接收文件时播放文件

来自分类Dev

Java通过套接字发送和接收文件

来自分类Dev

通过套接字Android / Java接收文件时出错

来自分类Dev

通过套接字同时发送或接收文件或数据

来自分类Dev

我无法通过lxde上的蓝牙接收文件

来自分类Dev

寻找广播解决方案并通过wifi接收文件?

来自分类Dev

通过套接字Android / Java接收文件时出错

来自分类Dev

在超级终端上通过XModem接收文件

来自分类Dev

通过局域网发送和接收文件

来自分类Dev

在 Ubuntu 20.04 上通过蓝牙接收文件

来自分类Dev

如何在Zend Framework 2中接收文件

来自分类Dev

如何使用Java RabbitMQ发送和接收文件?

来自分类Dev

在python套接字中发送和接收文件

来自分类Dev

Android通过蓝牙接收接收文本

来自分类Dev

PHP文件上传未接收文件

来自分类Dev

通过JFormattedTextField接收文本输入

来自分类Dev

在服务器端PHP中通过AJAX接收文件

来自分类Dev

C#应用程序停止响应通过TCP接收文件

来自分类Dev

Ubuntu 17.04通过蓝牙发送/接收文件不起作用

来自分类Dev

通过蓝牙接收文件时的Android Broadcast Receiver过滤器

Related 相关文章

热门标签

归档