将请求从GAE上传到PicasaWeb的错误请求

时间:2014-12-02 21:11:06

标签: google-app-engine sdk gdata picasa

我正在使用PicasaWeb上的上传功能在Google App Engine上开发网络应用程序。 我使用此代码上传照片:

myService = new PicasawebService("my-picasa-web-service");
myService.setConnectTimeout(60000);
myService.setReadTimeout(60000);
myService.setUserCredentials(USERNAME, PASSWORD);
PhotoEntry myPhoto = new PhotoEntry();
myPhoto.setClient("myAdminClient");
MediaStreamSource myMedia = new MediaStreamSource(stream, "image/jpeg");
myPhoto.setMediaSource(myMedia);
PhotoEntry returnedPhoto = myService.insert(new URL(albumFeedUrl), myPhoto);

其中 stream 变量是包含上传文件的InputStream。

如果我在独立的客户端程序中运行它,此代码可以正常工作。 但是当我使用GAE运行它时,最后一行加注和异常,我可以在日志中看到它:

com.google.gdata.util.InvalidEntryException: OK
<HTML>
<HEAD>
<TITLE>Bad Request</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Bad Request</H1>
<H2>Error 400</H2>
</BODY>
</HTML>

at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:602)
at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:564)
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:560)
at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:538)
at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:536)
at com.google.gdata.client.media.MediaService.insert(MediaService.java:400)

你能帮我解决这个错误吗?

我如何获得有关此内容的更多信息?

由于 斯特凡诺

1 个答案:

答案 0 :(得分:0)

我发现了这个问题;它与我使用的无效内容类型有关。 在我的例子中,我报告了#34; image / jpeg&#34;作为&#34;新MediaStreamSource()&#34;的参数方法。在我的原始代码中,我使用变量作为内容类型,并且设置方式很糟糕,因此我遇到了错误。