我开发了REST服务.我可以通过浏览器或客户端应用程序测试GET方法.但是那些有PUT方法的人我不知道如何通过浏览器来消费它们……
例如,在插入userId之后,我有这个方法打开灯:
@PUT @Path("/lampon") @Produces({"application/json","text/plain"}) @Consumes("multipart/form-data") public boolean turnOnLamp(@FormParam("userId") String userId) throws Exception { boolean response = new LampManager().turnOnLamp(userId); return response; }
在我的客户端应用程序中,我这样做,它的工作原理:
String webPage = "http://localhost:8080/BliveServices/webresources/services.actuators/lampon"; URL urlToRequest = new URL(webPage); //Authentication urlConnection = (HttpURLConnection) urlToRequest.openConnection(); urlConnection.setReadTimeout(10000); urlConnection.setConnectTimeout(15000); urlConnection.setRequestMethod("PUT"); urlConnection.setRequestProperty("Authorization",basicAuth); urlConnection.setRequestProperty("Content-type","multipart/form-data"); urlConnection.setRequestProperty("Accept","application/json"); urlConnection.setDoOutput(true); urlConnection.setDoInput(true); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("userId","2")); (...)
但是如何通过浏览器发送userId呢?
另一件事,我在构建项目时收到此消息:
SEVERE: Resource methods utilizing @FormParam and consuming "multipart/form-data" are no longer supported. See @FormDataParam.
谢谢
解决方法
如果要使用浏览器测试REST-Webservice,则必须安装插件.
如果您使用谷歌浏览器,您可以安装REST控制台我也使用这些插件来测试我的Web服务.
https://chrome.google.com/webstore/detail/rest-console/cokgbflfommojglbmbpenpphppikmonn
对于Firefox安装这些REST-Client
https://addons.mozilla.org/en-us/firefox/addon/restclient/
REST CLient也可用于Safari
http://restclient.net/
对于Opera,您可以查看Simple REST-Client
https://addons.opera.com/en/extensions/details/simple-rest-client/
对于你的第二个问题
请尝试消费价值’application / x-www-form-urlencoded’