- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
params = {'file': open("test.txt", "rb"), 'name': 'upload test'}
datagen, headers = poster.encode.multipart_encode(params)
request = urllib2.Request(upload_url, datagen, headers)
result = urllib2.urlopen(request)
我使用海报库为 HTTP 进行 POST。它运作良好。我对此很满意。
但我想尝试一下。正如您在上面看到的,要发送文件数据,我必须打开一个文件。但是有没有办法不制作一个真实的文件来做到这一点?我们可以使用 STREAM,比如 StringIO
,像处理文件一样处理数据,对吧?但是,我对 poster
了解不深。所以,我想知道将 STREAM 与 poster
一起使用的方法。
实际上,我尝试过 POST 图像数据。我在下面写了这个
from PyQt4 import QtCore, QtGui
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2, os
register_openers()
app = QtGui.QApplication(sys.argv)
pixmap = QtGui.QPixmap("c:/test_img.png")
byte_array = QtCore.QByteArray()
buffer = QtCore.QBuffer(byte_array)
buffer.open(QtCore.QIODevice.WriteOnly)
pixmap.save(buffer, "PNG")
from cStringIO import StringIO
datagen, headers = multipart_encode({"image": StringIO(str(byte_array.toBase64()))})
request = urllib2.Request(upload_url, datagen, headers)
_rnt = urllib2.urlopen(request)
但是,我收到这个错误:
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
_rnt = urllib2.urlopen(request)
File "C:\Python26\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python26\lib\urllib2.py", line 397, in open
response = meth(req, response)
File "C:\Python26\lib\urllib2.py", line 510, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Python26\lib\urllib2.py", line 435, in error
return self._call_chain(*args)
File "C:\Python26\lib\urllib2.py", line 369, in _call_chain
result = func(*args)
File "C:\Python26\lib\urllib2.py", line 518, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 500: Internal Server Error
最佳答案
file
参数是您传递文件对象的地方。那么,如果您改为传递类文件对象会怎样?
>>> params = {'file': cStringIO.StringIO('upload test data'), 'name': 'upload test'}
>>> datagen, headers = poster.encode.multipart_encode(params)
>>> headers
{'Content-Length': '317', 'Content-Type': 'multipart/form-data; boundary=0c56082b1e134424a918b2b083391467'}
看起来成功了。
什么是the documentation说?
Values are either strings parameter values, or file-like objects to use as the parameter value. The file-like objects must support .read() and either .fileno() or both .seek() and .tell().
因此,您可以使用 StringIO
对象,因为它们支持 seek()
和 tell()
。
但你不必这样做。您应该能够只使用原始字符串。让我们试试看:
>>> params = {'file': 'upload test data', 'name': 'upload test'}
>>> datagen, headers = poster.encode.multipart_encode(params)
>>> headers
{'Content-Length': '317', 'Content-Type': 'multipart/form-data; boundary=0c56082b1e134424a918b2b083391467'}
看看那个,文档是正确的。
关于 python : post data within stringIO through poster?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13354589/
我在我的博客右侧遇到了此消息的问题。你能帮我一下吗? 最佳答案 我也刚遇到这个错误。您可能正在对即将为零的值运行液体过滤器。我的 jekyll 网站上有这样的东西: {{ page.title | x
在 posterous 中,当您将鼠标悬停在图像上时,它会显示一个框,使用户可以下载或查看完整尺寸的图像。这是它应该如何工作的示例。 我试图找出为什么这在我创建的主题中不起作用 Here .我们将不胜
我正在通过 beamer 制作海报,发现我的引用书目风格有问题。我希望我的引用资料使用海报中可用的完整水平空间,例如: (1) Authors. Title. Journal. 但取而代之的是,每个引
像 posterous.com 那样,为不同的客户存储主题和 css 的最佳方式是什么? 他们是否为每个客户存储完整的 css?这对大量客户来说是否可持续? 最佳答案 我认为您在谈论个性化。 http
我正在制作一个有趣的网页游戏,其中包含许多将数据发布到 php 页面的表单。有哪些方法可以防止人们使用自己的网络表单在我的网站上发帖? 我的知识 PHP 不是太先进。所以,虽然我一直在研究这个话题,但
我正在使用 HTML5 从后端加载视频。 UX 需要覆盖整个 HTML5 视频播放器(包括 Controller )的封面图像。问题是当我使用海报属性加载封面图像时,它不会覆盖 Controller
params = {'file': open("test.txt", "rb"), 'name': 'upload test'} datagen, headers = poster.encode.mu
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我正在尝试找出 Photoshop“海报边缘”滤镜的效果。它似乎是边缘检测和分色器的结合,但我无法用这些复制它,甚至无法复制它,所以我想我遗漏了一些东西。下图显示了海报边缘过滤器之前和之后的相同图像:
当我的视频从 S3 存储桶加载时,我想在 Video.js 播放器中显示加载器。 我有一个 Video.js 播放器,它显示一个“播放”按钮,当点击这个按钮时,播放器显示黑屏,直到从 S3 存储桶加载
我们使用 YUI 2.9.0,在一个表单上我们遇到了一个问题:如果我们在 input type="text"上按 Enter,表单会以“正常方式”提交,而不是通过 YUI Dialog 的异步模式(
我开发了一个多用途 NFC 应用程序,它能够以不同类型的格式读取和写入不同类型的标签,包括外部类型、RTD 文本和 RTD URI。但是,解析和读取“TNF_WELL_KNOWN”智能海报内容时存在问
使用 Chris Atlee 的 python poster library有什么方法可以包括 cookie 处理吗?我有 python http 登录代码,它与 cookie 一起使用: cooki
我只是在我的服务器上设置了 SSL 证书。我很确定它们设置正确。当在浏览器中转到 https://mydomain.com/myapp 时,页面会正确加载并且地址栏中会显示绿色锁。 从 Firefox
元: 有关本地存储的 A/V 文件的类似问题可以在此处找到:Clickable "positioning" hyperlinks to A/V (locally stored on your webs
我正在尝试将 JSON 内容发布到 Web 服务。它在 POSTER(firefox 插件)和 HTTP Client (Mac) 中运行良好。但尝试从 XCode(iOS 应用程序)进行 POST
我收到错误java.lang.IllegalStateException:预期为 BEGIN_OBJECT,但在第 1 行第 7770 列路径 $.films[8].images.poster 处为
我正在使用 Python 3,并且无法 --> pip 安装海报库 我正在尝试使用海报上传文件。我尝试过: pip install poster 或 easy_install poster 他们都失败
我是一名优秀的程序员,十分优秀!