0

我正在尝试使用 Scribe 库将照片上传到 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();
4

1 回答 1

0

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

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

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

Flickr 报告的错误可能是由于 Flickr 将尝试验证签名并发现签名超出其最大允许长度时引起的。

于 2013-05-26T13:52:32.737 回答