picloud上发布的函数抛出错误

时间:2013-05-26 13:02:59

标签: python rest google-app-engine poster

我正在尝试通过REST将图片发送到picloud上的一个函数,并在google app引擎上播放海报python库(HTML JPEG图片上传)。但该函数抛出此错误:

  

{“error”:{“msg”:“函数参数(POST数据)无效JSON”,“code”:446,“data”:“{'parameter':u'filename'}”,“重试“:false}}

我已将函数的输出编码设置为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实例

请帮忙。

1 个答案:

答案 0 :(得分: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只有一个字。