4

我正在尝试通过REST谷歌应用引擎上的海报 python 库(HTML JPEG 图像上传)将文件发送到 picloud 上的函数。但是该函数会引发此错误:

{"error": {"msg": "函数参数(POST 数据)不是有效的 JSON", "code": 446, "data": "{'parameter': u' filename'}", "retry":错误的}}

我已将函数的输出编码设置为raw,我也按照文档进行了详细说明。

以下是一些功能细节。

函数名称:detector(name,ifile) 有两个参数,一个图像文件及其名称

这是代码的相关部分:

#all needed classes and libraries have been imported,urlfetch, poster,MultipartParam class ect.

#here we go! 
params=[] 
params.append(MultipartParam("Imagename",filename="anyname.jpg",filetype="application/octet-stream",value=some_file_uploaded_via_html_form))
 #http_headers has been defined with appropriate autorization credentials 
datagen,headers=multipart.encode(params) 
data=str().join(datagen)

result=urlfetch.fetch(url=my_defined_function_url,payload=data,method=urlfetch.POST,headers=http_headers)
 print result.content

当我添加以下行时,为了包含真正的函数参数

params.append(MultipartParam('name',value=filename_variable) 
params.append(MultipartParam('ifile',value=some_file_uploaded_via_html_form)

我得到错误

{"error": {"msg": "charset 被定义多次", "code": 445, "retry": false}}

我也尝试将参数包装在字典中,而不是单独的MultipartParam实例

请帮忙。

4

1 回答 1

1

你的论点中有一个空格:

params.append(MultipartParam('ifile',value=some_file_uploaded_via_html _form)

这应该是:

params.append(MultipartParam('ifile',value=some_file_uploaded_via_html_form)

注意some_file_uploaded_via_html_form是一个字。

于 2013-05-26T13:25:56.117 回答