httpPost を使用して Foursquare に画像をアップロードしているときに、応答として次のエラーが生成されます。
{"meta":{"code":400,"errorType":"other","errorDetail":"Missing file upload"},"response":{}}
以下にコードを示します。
Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(), R.drawable.logo);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 90, bao);
byte [] ba = bao.toByteArray();
String ba1=Base64.encodeToString(ba, 0);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
nameValuePairs.add(new BasicNameValuePair("venueId", "5177a5b8e4b0de6e7df647b4"));
nameValuePairs.add(new BasicNameValuePair("checkinId",name));
nameValuePairs.add(new BasicNameValuePair("image",ba1));
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("https://api.foursquare.com/v2/photos/add?v=20130726&oauth_token="+ActivityWebView.accessToken);
httppost.setHeader("Content-Type",
"image/jpeg");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
long i= response.getEntity().getContentLength();
String res= inputStreamToString(response.getEntity().getContent()).toString();
Log.v("response", ""+res);
System.out.println("resssssssssssssssssssssssssssssssssssssssss"+res);
System.out.println("iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"+i);
Toast.makeText(getApplicationContext(),"response"+res, Toast.LENGTH_LONG).show();
} catch(Exception e) {
Log.e("log_tag", "Error in http connection "+e.toString());
}
これは、画像のアップロード中のエラーが原因である可能性があります。