0

Scribe Library を使用して Flickr に写真をアップロードしようとしていますが、Java で MultipartEntity を使用する方法がわかりません (JAVA は初めてです)。Flickr からの応答: コード = 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 に答える