Note that there are some explanatory texts on larger screens.

plurals
  1. POHow use multipart/form-data upload picture/image on Android
    text
    copied!<p>This is my code.</p> <p>I got Http 400 error, can someone help me?</p> <pre><code>HttpClient httpClient; HttpPost httpPost; HttpResponse response; HttpContext localContext; FileEntity tmp = null; String ret = null; httpClient = new DefaultHttpClient( ); httpClient.getParams().setParameter( ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109) ; httpPost = new HttpPost(url); tmp = new FileEntity( data,"UTF-8" ); httpPost.setEntity( tmp ); httpPost.setHeader( "Content-Type", "multipart/form-data" ); httpPost.setHeader( "access_token", facebook.getAccessToken( ) ); httpPost.setHeader( "source", data.getAbsolutePath( ) ); httpPost.setHeader( "message", "Caption for the photo" ); localContext = new BasicHttpContext( ); response = httpClient.execute( httpPost,localContext ); </code></pre> <hr> <p>bobince, thanks this is my new id, I will try put OAuth to my connection header.</p> <p>And this is my old code, I will update it soon.</p> <pre><code>private void uploadPicture( ) throws ParseException, IOException { HttpClient httpclient = new DefaultHttpClient(); httpclient.getParams( ).setParameter( CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1 ); HttpPost httppost = new HttpPost( "https://graph.facebook.com/me/photos" ); File file = new File( sdpicturePath ); // DEBUG Log.d( "TSET", "FILE::" + file.exists( ) ); // IT IS NOT NULL Log.d( "TEST", "AT:" + fbAccessToken ); // I GOT SOME ACCESS TOKEN MultipartEntity mpEntity = new MultipartEntity( ); ContentBody cbFile = new FileBody( file, "image/png" ); ContentBody cbMessage = new StringBody( "TEST TSET" ); ContentBody cbAccessToken = new StringBody( fbAccessToken ); mpEntity.addPart( "access_token", cbAccessToken ); mpEntity.addPart( "source", cbFile ); mpEntity.addPart( "message", cbMessage ); httppost.setEntity( mpEntity ); // DEBUG System.out.println( "executing request " + httppost.getRequestLine( ) ); HttpResponse response = httpclient.execute( httppost ); HttpEntity resEntity = response.getEntity( ); // DEBUG System.out.println( response.getStatusLine( ) ); if (resEntity != null) { System.out.println( EntityUtils.toString( resEntity ) ); } // end if if (resEntity != null) { resEntity.consumeContent( ); } // end if httpclient.getConnectionManager( ).shutdown( ); } // end of uploadPicture( ) </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload