您的位置:首页 > 移动开发 > Android开发

Android使用Put方式提交数据

2015-09-30 14:33 429 查看
前一阵子,公司有个api接口必须使用put方式请求提交数据,但是在java中put方式的使用相当少,网上几乎很难找到相应的例子,摸索了一阵子,终于搞定了,下面分享给大家:1、四种http请求方式作用POST   /uri     创建DELETE /uri/xxx 删除PUT    /uri/xxx 更新或创建GET    /uri/xxx 查看2、post和put的区别PUT,DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE也是一样。顺便说一句,因为GET操作是安全的,所以它自然也是幂等的。POST操作既不是安全的,也不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。安全和幂等的意义在于:当操作没有达到预期的目标时,我们可以不停的重试,而不会对资源产生副作用。从这个意义上说,POST操作往往是有害的,但很多时候我们还是不得不使用它。还有一点需要注意的就是,创建操作可以使用POST,也可以使用PUT,区别在于POST 是作用在一个集合资源之上的(/uri),而PUT操作是作用在一个具体资源之上的(/uri/xxx),再通俗点说,如果URL可以在客户端确定,那么就使用PUT,如果是在服务端确定,那么就使用POST,比如说很多资源使用数据库自增主键作为标识信息,而创建的资源的标识信息到底是什么只能由服务端提供,这个时候就必须使用POST。3、最后上代码
public static String doPut(String id, String token) {String ret = null;try {//跟HttpPost请求方式的代码差别并不大HttpPut request = new HttpPut(DEV_URL);  //关键是这句,DEV_URL为你的api接口地址//添加参数List<NameValuePair> values = new ArrayList<NameValuePair>();values.add(new BasicNameValuePair("id", id));values.add(new BasicNameValuePair("device_token", token));// request.setHeader("Accept-Language", "zh-CN");    这里可以设置一些请求头// request.setHeader("Accept",// "application/json, application/xml, text/html, text/*, image/*, */*");DefaultHttpClient client = new DefaultHttpClient();UrlEncodedFormEntity urlEntity = new UrlEncodedFormEntity(values,"UTF-8");request.setEntity(urlEntity);HttpResponse response = client.execute(request);if (response != null) {StatusLine statusLine = response.getStatusLine();int statusCode = statusLine.getStatusCode();if (statusCode == 200 || statusCode == 403) {HttpEntity entity = response.getEntity();InputStream inputStream = entity.getContent();if (inputStream != null) {//这里我封装了一个读取输入流的工具类,大家可以自行处理ret = StreamTools.readInputStream(inputStream);inputStream.close();}}}} catch (Exception e) {Debug_AdLog.e(e);  //自己封装的调试日志类}return ret;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: