python - 从 Python 脚本使用 POST 发送文件

标签 python encoding post

这几乎是 Send file using POST from a Python script 的重复,但我想补充一点:我需要一些能够正确处理字段和附加文件编码的东西。当您将包含非 ascii 字符的 unicode 字符串扔到混合中时,我能够找到的解决方案会崩溃。此外,大多数解决方案不会对数据进行 base64 编码以保持 7 位清洁。

最佳答案

我能想到的最好的事情就是自己编码。这个子程序怎么样?

from urllib2 import Request, urlopen
from binascii import b2a_base64

def b64open(url, postdata):
  req = Request(url, b2a_base64(postdata), headers={'Content-Transfer-Encoding': 'base64'})
  return urlopen(req)

conn = b64open("http://www.whatever.com/script.cgi", u"Liberté Égalité Fraternité")
# returns a file-like object

(好吧,所以这段代码只发送 POST 数据。但是您显然想要多部分编码的数据,就好像您单击了“上传文件”按钮一样,对吧?好吧,这是我在这里和您链接的问题的答案。)

关于python - 从 Python 脚本使用 POST 发送文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/150517/

相关文章:

PHP 邮件 : normal characters from link are being replaced

php - 使用 PHP 将 UCS-2 文件转换为 UTF-8

AES 加密的 C# UTF8 编码问题

javascript - Google Apps脚本-如何登录和获取数据?

python - 测试期间Django双重导入

javascript - 如何将异构数组合并到 MongoDb 中的单个文档?

python - 对列表进行排序并获取最常用的单词

python - `def` 什么时候在 python 中运行?函数对象什么时候初始化?

php - 在数据库中保存 jquery json 数据

post - 在某些机器上使用 SSL 的 ActiveX 控件不会 POST 到 IE9 中的 URL