问题描述
了解restful的人知道,restful有一个理念是要把一切资源化 比如一条数据库记录,一个方法,或者一个POJO,甚至一个POJO的一个属性等等。现在不说服务器端是如何实现的,反正无非是用一些开源框架,而且,restful客户端是不管你服务器是怎么实现的,只要客户端发送标准的http请求,restful就会处理你的请求,所以说,客户端只关心服务器端能不能处理好一件事,而不管怎么处理的。问题来了,猛一看,服务器端把所有的东西资源化,客户端只需要向服务器端发送http请求,比如服务器端暴露了一个userlist的uri,那么,客户端想增加一个用户,只用向这个uri发送一个POST请求就行了。想删除也只用发送一个DELETE请求。看起来,真的很方便啊!可惜,事实没我想象的那么爽啊。。。最开始我很兴奋的去写了个表单。。。method些了POST,表单里给了点值,提交,没用。。。才发现,原来,http请求,说的是以下格式的这些东西:(Request-Line)GET /firstResource/items/?name=dsa&description=dsa1 HTTP/1.1Hostlocalhost:8182......这就很难办了。。。因为这个请求是浏览器自己包装的,restful的框架,我用的是restlet,该框架的客户端实现是用了一个叫Client的类来封装这些http请求,也就是说,只有用这个CLient类才能向服务器发送http请求。虽然有很多框架都能封装http请求并发送。但是,这样还是很不爽。。。因为如果要实现客户端,还必须得用到第三方的东西来发送请求,这。。。并没有很方便啊。。铺垫了这么多。我只是想问各位,谁知道什么东西能很方便实现客户端么? 问题补充:<div class="quote_title">kakaluyi 写道</div><div class="quote_div">url是你自己拼装的url <br />URL U = new URL(urlName.toString());<br />URLConnection conn = U.openConnection();<br />conn.setReadTimeout(3000);<br />conn.connect(); </div><br /><br />是的。可是,用这个办法,我无法设置method 比如"DELETE" 并且无法得到返回的结果,比如一个XML
解决方案
url是你自己拼装的url URL U = new URL(urlName.toString());URLConnection conn = U.openConnection();conn.setReadTimeout(3000);conn.connect();