Jerseyを使用してレストサーバーを開発しています。サーバー上のフォルダーに画像をアップロードする API を作成する必要があります。私の API には 2 つのパラメーターが含まれている必要があります。文字列パラメーターとファイル パラメーター。
@POST
@Path("path")
@public Response uploadImage(@FormParam("name") String name, @FormDataParam("imagestream") InputStream imageStream)
クライアント アプリから 2 つのパラメーターを送信すると、両方の属性を受信できません。
私のクライアント側のコードは次のとおりです。
private static void instantiateConnection(String urlString, byte[] params)
{
HttpURLConnection conn = null;
try
{
URL url = new URL(urlString);
conn = (HttpURLConnection) url.openConnection();
outStream(conn, params);
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK)
{
InputStream instream = conn.getInputStream();
instream.close();
}
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
conn.disconnect();
}
}
private static void outStream(HttpURLConnection conn, byte[] param)
{
String name = new String("name");
conn.addRequestProperty("Content-Length", "" + (param.length + name.length()));
conn.addRequestProperty("Content-Type", "multipart/mixed");
try
{
conn.setRequestMethod("POST");
conn.setUseCaches(false);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setReadTimeout(15000);
// Send request
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.write(name.getBytes());
wr.write(param);
wr.flush();
wr.close();
}
catch (ProtocolException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return;
}
どこが間違っていますか?