2017-04-10 15 views
0

私は3パートからなるマルチパートリクエストを持っています。各パートには本体とヘッダーが含まれていますので、パートの1つにカスタムヘッダーを追加します。私はretrofitとokhttpでリクエストを作成しようとしましたが、そうするオプションはありません。何か案は?マルチパートリクエストにヘッダを追加するには?

EDIT:これは、このquestion

答えて

0

に基づいて次のコードを試してみてください。それは、その一部のいずれかのないカスタムヘッダを持つ標準の要求であることの外見から

public HttpResponse multiPartRequest(String url, String token, File file) { 

client = new DefaultHttpClient(); 

HttpPost request = new HttpPost(url); 

HttpResponse response = null; 

DRPContentForUpload content = new DRPContentForUpload(file); 
String jsonObject = DRPJSONConverter.toJson(content); 
String BOUNDARY= "--eriksboundry--"; 

request.setHeader("Content-Type", "multipart/form-data; boundary="+BOUNDARY); 
request.addHeader("X-AUTHORIZATION",token); 
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE,BOUNDARY,Charset.defaultCharset()); 
try { 


    entity.addPart("file01", new StringBody(jsonObject)); 

    entity.addPart("file01", new FileBody(file)); 

    request.addHeader("Accept-Encoding", "gzip, deflate"); 

} catch (UnsupportedEncodingException e) { 
    Log.v("encoding exception","E::: "+e); 
    e.printStackTrace(); 
} 
request.setHeader("Accept", "application/json"); 
request.setHeader("Content-Type", "multipart/form-data; boundary="+BOUNDARY); 
request.setEntity(entity); 

try { 




    response = client.execute(request); 



} catch (ClientProtocolException e) { 

    e.printStackTrace(); 
} catch (IOException e) { 

    e.printStackTrace(); 
} 


return response; 

}

+0

を例えば、ファイルである可能性のあるパート1には、標準のヘッダーに余分なスペースが追加されます。それはもっと理にかなっていますか? –

関連する問題