2016-03-27 35 views
0

Ich brauche eine Datei zu schreiben, die folgenden Regeln:Android HTTP Post Datei mit Parametern

$ curl -X POST https://www.strava.com/api/v3/uploads \ 
-H "Authorization: Bearer 83ebeabdec09f6670863766f792ead24d61fe3f9" \ 
-F activity_type=ride \ 
-F [email protected] \ 
-F data_type=gpx 

Ich habe den Autorisierungscode, ich die Datei haben. Ich habe viele Beispiele auf Stack-Überlauf gesehen, aber ich weiß nicht, wie sie alle zusammen, und ich weiß nicht, was die "-F" und "-H" als Parameter übergeben werden soll. Hier

Antwort

0

ist die Lösung, entdeckte ich, dass die „-H“ steht für „header“, und seinen eigenen Platz hat:

HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("https://www.strava.com/api/v3/uploads"); 

     try { 
      MultipartEntity entity = new MultipartEntity(); 
      FileBody bin = new FileBody(new File(FilePath)); 


      httppost.setHeader("Authorization:", "Bearer " + Token); 

      entity.addPart("activity_type", new StringBody("run")); 
      entity.addPart("file", bin); 
      entity.addPart("data_type", new StringBody("GPX")); 

      httppost.setEntity(entity); 



      ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
      String responseBody = httpclient.execute(httppost, responseHandler); 
      Log.i("Kenyan Runner", "Response of file upload: " + responseBody); 

     } catch (ClientProtocolException e) { 
      Log.e("Kenyan Runner", e.toString()); 
     } catch (IOException e) { 
      Log.e("Kenyan Runner", e.toString()); 
     }finally { 
      httpclient.getConnectionManager().shutdown(); 
     }