2016-08-24 3 views
0

den Code unten durch Postbote generiert:Multipart-Datei-Upload okhttp mit von Postbote erzeugt

OkHttpClient client = new OkHttpClient(); 

MediaType mediaType = MediaType.parse("multipart/form-data; boundary=---011000010111000001101001"); 
RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"image\"; filename=\"[object Object]\"\r\nContent-Type: false\r\n\r\n\r\n-----011000010111000001101001--"); 
Request request = new Request.Builder() 
    .url("http://foobar.com/newsfeed/photo") 
    .post(body) 
    .addHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001") 
    .addHeader("x-access-token", "MczCvMEbllNhGaMwEDnGXuQjrwBAYuYleFlgsUZDWRYbVaohpEGgofonYcvHsgPaTnbzHxCvJWalYFTY") 
    .addHeader("accept-language", "ru") 
    .build(); 

    Response response = client.newCall(request).execute(); 

Diese Anforderung eine Datei auf dem Server mit 0 Kb Größe. und ich konnte keine Datei ablegen. Also muss ich wie diese eine Datei setzen:

RequestBody body = RequestBody.create(mediaType, new File(filename)); 

Aber ich habe TimeOutExaption.

Wie man eine Datei mit dieser Art von Rest API?

+0

einen Blick auf meine Antwort Nehmen Sie hier kann u helfen: http://stackoverflow.com/questions/39078192/send-file-to-server -Via-Retrofit2-as-Objekt – Amir

+0

Ich lese es @Amir, aber es funktioniert nicht für mich ((( –

+0

) können Sie einige Relevanz Teil Ihres Codes? oder ein Protokoll? Vergessen Sie auch nicht, wie ich sehe Postbote, Sie brauchen eine Authentifizierung – Amir

Antwort

0

Ich fand einen Weg zu mehrteiligen Datei-Upload von Ion.

Ion.with(context).load(url).setHeader("x-access-token", token) 
      .setMultipartParameter("x-access-token", token) 
      .setMultipartContentType("multipart/form-data") 
      .setMultipartFile("image", "image/jpeg", file) 
      .asString().withResponse().setCallback(new FutureCallback<Response<String>>() { 
     @Override 
     public void onCompleted(Exception e, Response<String> result) { 
      if (result != null) 
       onSuccess(result.getResult(), result.getHeaders().code()); 
     } 
    }); 

Erholung API: enter image description here

enter image description here