2017-07-25 3 views
0

ファイルを(バイト配列として)Box.netにアップロードするための既存のJavaコードがあります。最近、Apache HttpClient 4.4にアップグレードすることをお勧めします。しかし、これは予想よりも少し難しくなってきています。ここに私の作業レガシーコードは次のとおりです。MultipartEntityBuilderを使用してファイルをアップロードする

HttpPost postMethod = new HttpPost(url); 
MultipartEntity multipartEntity = new MultipartEntity(); 
for (NameValuePair parameter : parameters) { 
    String parameterName = parameter.getName(); 
    String parameterValue = parameter.getValue(); 
    StringBody valueBody = new StringBody(parameterValue, ContentType.MULTIPART_FORM_DATA);      
    multipartEntity.addPart(parameterName, valueBody); 
} 

Iterator iterator = byteArrayHashMap.keySet().iterator(); 
while (iterator.hasNext()) { 
    String key = (String) iterator.next(); 
    byte[] byteArray = byteArrayHashMap.get(key); 
    multipartEntity.addPart(key, new ByteArrayBody(byteArray, key)); 
} 

postMethod.setEntity(multipartEntity); 

、ここでは、新しいコードは次のとおりです。私は新しいコードを実行すると

HttpPost postMethod = new HttpPost(url); 
MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create(); 
for (NameValuePair parameter : parameters) { 
    String parameterName = parameter.getName(); 
    String parameterValue = parameter.getValue(); 
    StringBody valueBody = new StringBody(parameterValue, ContentType.MULTIPART_FORM_DATA);      
    multipartEntityBuilder.addPart(parameterName, valueBody); 
} 

Iterator iterator = byteArrayHashMap.keySet().iterator(); 
while (iterator.hasNext()) { 
    String key = (String) iterator.next(); 
    byte[] byteArray = byteArrayHashMap.get(key); 
    multipartEntityBuilder.addBinaryBody(key, byteArray); 
} 

postMethod.setEntity(multipartEntityBuilder.build()); 

、サーバが不足しているパラメータを訴えます。 MultipartEntityBuilderを正しく使用していますか?

+0

誰かがこの質問に遭遇した場合は、addBinaryBody呼び出しを更新してContentTypeを次のように設定して解決できました:multipartEntityBuilder.addBinaryBody(key、byteArray、ContentType.DEFAULT_BINARY、key); – user304582

答えて

0

誰かがこの質問に遭遇した場合は、addBinaryBody呼び出しを更新してContentTypeを次のように設定して解決できました:multipartEntityBuilder.addBinaryBody(key、byteArray、ContentType.DEFAULT_BINARY、key);

関連する問題