Jython多部分帖子与commons http-client / core

时间:2014-01-06 14:56:29

标签: jython apache-commons-httpclient

你好我试图发送一个多部分的帖子请求并使用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'”

我的错误在哪里?

1 个答案:

答案 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。