コードで奇妙な問題に直面しています。ファイルをアップロードできるように、クラスを使用しorg.apache.http.entity.mime.MultipartEntity
てファイルエンティティをサーバーに送信しています。しかし、別のエンティティ/パラメーターを追加しようとすると、その値を .xml で取得できませんでしたHttpServletRequest
。以下は、成功したファイルアップロードリクエストを送信しているクライアント側の作業コードです。
public class TestClass
{
public static void main(String args[]) throws ConfigurationException, ParseException, ClientProtocolException, IOException
{
HttpClient client = new DefaultHttpClient();
client.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpPost post = new HttpPost("http://localhost:9090/HostImages/ImageUploaderServlet");
MultipartEntity entity = new MultipartEntity( HttpMultipartMode.BROWSER_COMPATIBLE );
entity.addPart( "file", new FileBody(new File("D:/tempImage/cat_image.jpg") ));
post.setEntity(entity);
String response = EntityUtils.toString( client.execute( post ).getEntity(), "UTF-8" );
client.getConnectionManager().shutdown();
}
}
サーバー側、つまり内部では、次のようにオブジェクトをImageUploaderServlet
解析していました。request
HttpServletRequest
FileItemFactory fileItemFactory = new DiskFileItemFactory();
そして、クライアント側から送信されたファイルのリストが表示され、それらは完全に正常に機能します。
ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
List fileItems = servletFileUpload.parseRequest(request);
MultipartEntity
を使用して別のエンティティを追加しようとしている場合、またはHttpParams
サーバー側でその値を取得できない場合に問題が発生します。私はすでに投稿されたこの質問を調べましたが、助けにはなりません。StringBody
(以下 のように別のエンティティを追加しようとしました:)
entity.addPart("flag", new StringBody("true"));
サーバー側でそれを使用して目的を達成できるように、クライアント側にいくつかの追加パラメーターを追加したいと考えています。追加のパラメーターは、String、int、または byte のいずれかです。クライアント側またはサーバー側の正確な問題がどこにあるのかわかりません! 親切に助けてください。