我正在尝试使用“POST”方法执行java rest Web服务。我的客户端部分调用Web服务正常工作。但是我遇到了通过“POST”方法访问传递参数的困难。任何帮助都会要感激的。这是我的客户端
public static void main(String[] args) throws IOException
{
String urlParameters = "param1=world¶m2=abc";
String request = "http://localhost:8080/wsRevDash/rest/post/test";
URL url = new URL(request);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setInstanceFollowRedirects(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("charset", "utf-8");
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + urlParameters);
for (int c; (c = in.read()) >= 0;)
System.out.print((char)c);
}
这是我的java rest web服务
@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public String getpostdata(@QueryParam("param1") String param1,@QueryParam("param2") String param2)
{
JSONObject jObjDevice = new JSONObject();
jObjDevice.put("Hello",param1);
return jObjDevice.toJSONString();
}
参数param1 = world.But当我运行Web服务时,我得到json字符串为{“Hello”:null}而不是{“Hello”:“world”}。请建议任何更改。我认为问题是注释即@ QueryParam。如果是这种情况,那么请提供正确的方法来使用适当的注释访问参数。