你好我试图发送一个多部分的帖子请求并使用jython和commons httpclient 4.3.1。
http_client = DefaultHttpClient()
http_post = HttpPost(url)
bin = FileBody(File(file_name), ContentType.APPLICATION_XML)
me = MultipartEntity()
me.addPart('datei', bin)
http_post.setEntity(me)
print "Executing Post Request:", http_post.getRequestLine()
http_response = http_client.execute(http_post)
result_entity = http_response.getEntity()
return EntityUtils.toString(result_entity)
在我看来,返回值应该是内容的str,但它是:
“type'org.apache.http.conn.BasicManagedEntity'”
我的错误在哪里?
答案 0 :(得分:0)
我不知道你问题的确切答案。今天我一直试图从我的jython脚本中为我正在进行的一个滑雪项目做一个多部分的工作。
以下是我能够做到的。
首先从http://peak.telecommunity.com/dist/ez_setup.py获取ez_setup.py 然后从cmd提示符
运行jython ez_setup.py
第二张来自:http://atlee.ca/software/poster/dist/0.8.1/的海报
解压缩文件
然后运行jython setup.py install
最后,您可以关注此示例代码或在atlee网站上查看更多内容:
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2
register_openers()
upload_url = "http://your.website.com/upload-multipart.php"
#this will upload a file and a json object
#in php the file is in $_FILES and the json is in $_POST
params = {'file': open("test.txt", "rb"), 'jsonData': '[{"foo":"bar", "foo1":"bar1"}]'}
datagen, headers = multipart_encode(params)
request = urllib2.Request(upload_url, datagen, headers)
result = urllib2.urlopen(request)
print result.read()
我希望这可以帮助那些人。这个例子也适用于python中的post multipart。