flickr照片上传帖子大小太大

时间:2013-03-31 16:20:05

标签: java android scribe

我尝试使用Scribe Library将照片上传到Flickr,但我不知道如何在Java中使用MultipartEntity(我是JAVA的新手)。 Flickr的响应是:code = 93,POST请求太大。

这是我的代码,请指导我正确的方向。

                Bundle extras = data.getExtras(); 
                Bitmap pic = extras.getParcelable("data");
                ByteArrayOutputStream stream = new ByteArrayOutputStream();  
                stream.toByteArray();
                pic.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                imageView.setImageBitmap(pic);

                 final OAuthService service = new ServiceBuilder()
                .provider(FlickrApi.class)
                .apiKey(APIKEY)
                .apiSecret(APISECRET).callback(CALLBACK)
                .build();

                OAuthRequest request = new OAuthRequest(Verb.POST, "http://api.flickr.com/services/upload/");


                byte[] img = stream.toByteArray();
                MultipartEntity entity = new MultipartEntity();
                ContentBody body= new ByteArrayBody(stream.toByteArray(),"pic.jpg");
                entity.addPart("photo",body);
                request.addPayload(img);
                request.addHeader(entity.getContentType().getName(), entity.getContentType().getValue());

                service.signRequest(accessToken, request);
                Response response = request.send();
                String rbody=response.getBody();

1 个答案:

答案 0 :(得分:0)

来自Flickr的API文档(http://www.flickr.com/services/api/upload.api.html

  

请注意'照片'参数不应包含在签名中。生成签名时应包含所有其他POST参数。

但在您的代码中,您甚至使用了"照片"生成签名时的一部分。 尝试生成没有"照片的签名"部分和签署请求后添加"照片"参数。

当Flickr尝试验证签名并发现签名超出其允许的最大长度时,可能会导致Flickr报告的错误。