2013-03-31 2 views
0

Я пытаюсь загрузить фотографию в Flickr с помощью библиотеки Scribe, но я не знаю, как использовать MultipartEntity в Java (я новичок в JAVA). Ответ от Flickr: code = 93, запрос POST слишком велик.flickr photo upload post size too large

Вот мой код, пожалуйста, направляйте меня в правильном направлении.

   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(); 
+0

Когда он говорит, что запрос слишком велик, он случайно работает с маленькими изображениями? – Axarydax

+0

Я не уверен, что мой код выше! – Desire

+0

Я тоже не уверен, но вы должны выяснить, есть ли проблема на вашей стороне или на стороне Flickr - если сообщение об ошибке говорит слишком большой запрос, попробуйте его с меньшим запросом с небольшим изображением, поэтому вы можете устранить эту возможность. – Axarydax

ответ

0

Из документации API на Flickr (http://www.flickr.com/services/api/upload.api.html)

Обратите внимание, что параметр 'фото' не должны быть включены в подписи. Все остальные параметры POST должны быть включены при создании подписи.

Но в вашем коде вы даже использовали «фото» при создании подписи. Попробуйте создать подпись без части «фото», и после подписания запроса добавьте параметр «фото».

Ошибка, сообщенная Flickr, может быть вызвана, когда Flickr попытается проверить подпись и найдет подпись выше максимально допустимой длины.