前一阵子,公司有个api接口必须使用put方式请求提交数据,但是在java中put方式的使用相当少,网上几乎很难找到相应的例子,摸索了一阵子,终于搞定了,下面分享给大家:

1、四种http请求方式作用

  1. POST   /uri     创建
  2. DELETE /uri/xxx 删除
  3. PUT    /uri/xxx 更新或创建
  4. 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;
}

4.后话

现在安卓实际开发中网络请求基本都是用了第三方框架的,例如okhttp,volley等,这些框架对请求方式都兼容,所以并不会造成太大麻烦。以上只是本人使用比较原始的安卓网络请求HttpClient。

Android使用Put方式提交数据相关推荐

  1. Android笔记 get方式提交数据到服务器 避免乱码 demo

    http://download.csdn.net/detail/u011109881/8042001源代码 根据传智播客张泽华视频54-57写出 文中加粗的是解决乱码问题 A web端 1login. ...

  2. android提交服务器,Android向WEB服务器提交数据

    说明: 1.本系列博文是博主在学习传智播客Android培训视频的学习笔记 2.当然博文不只是罗列视频上讲的知识点,通过查阅资料对一些知识点进行了详细的讲解 3.由于是初学,难免有疏漏之处,还请不吝赐 ...

  3. java post 提交数据_使用Post方式提交数据到Tomcat服务器的方法

    我在上一篇文章中介绍了 使用Get方式提交数据到Tomcat服务器,这篇将介绍使用Post方式提交数据到服务器,由于Post的方式和Get方式创建Web工程是一模一样的,只用几个地方的代码不同所以,我 ...

  4. Java的HttpClient类以POST方式提交数据,目标端收到后中文乱码

     h ttpClient HttpMethod NameValuePair setRequestBody 今天开发时,遇到利用Java中HttpClient类以POST方式提交数据,目标收到后中文 ...

  5. Android笔记 采用httpclient提交数据到服务器demo

    本例建立在上篇日志基础之上web端代码不变 布局文件增加了两个按钮 httpclient相对于普通get post提交方式优势在于不需手动指定传输的编码集 避免了乱码 </pre>< ...

  6. [JAVA EE]ajax 方式提交数据

    前端界面:Form表单 前端数据提交:使用 ajax 方式 ( 基于jquery ) 后台代码: TestController.java @Controller public class TestCo ...

  7. python使用post方式提交数据

    #!/usr/bin/python # -*- coding: UTF-8 -*- import urllib,cookielib; import urllib2#设置要请求的头,让服务器不会以为你是 ...

  8. Android之使用HttpPost提交数据到服务器(Android手机客户端和后台服务器交互)

    这是一个小型的数据交互案例,即Android手机客户端和后台服务器交互(数据库mysql) 服务器端 首先服务器端数据库(用户名root密码123456),db_student.sql数据库表user ...

  9. jQuery中ajax用form表单方式提交数据

    给表单加ID值,如图: 写ajax方法,如图: servlet返回是否添加成功,如图: jsp页面 <div class="modal-content"><div ...

最新文章

  1. 华润网络签约神策数据 数据赋能打造跨行业综合移动服务生态圈
  2. 字节流--IO学习笔记(二)
  3. 移动web开发(三)——字体使用
  4. c++ map用法_Python的 5 种高级用法,效率提升没毛病
  5. 拓扑检查C++(ArcObject)
  6. Go语言常用的并发模式(上)
  7. 班级html网页设计实例,静态网页班级网站设计.doc
  8. 【搬运】不思议的小故事,其实舰娘们也是有灵性的
  9. 1137:加密的病历单
  10. DSP 基础学习 1:搭建环境与CCS6创建工程模板
  11. 食堂配送公司订餐微信小程序开发制作定制功能需求文档
  12. unity.生成表示地图信息的二维数组_Unity3D 中生成任意形状3D Texture amp; 体积云...
  13. APF有源电力滤波器Simulink仿真
  14. 如何上传自己的项目到Maven中央仓库
  15. iOS开发关于block和局部变量和全局变量
  16. 2021年,企业做好电商的六大关键点
  17. YOLOv5的损失函数
  18. ECDS-MUI是什么?
  19. ms在计算机是什么作用,请问电脑MS是什么意思?
  20. SSM农产品营销平台系统

热门文章

  1. MySQL:查询某年某月的数据
  2. USB 3G卡热插拔那些事2
  3. 技术人员如何写好周报和日报
  4. git报错git@gitlab.com: Permission denied
  5. 【CT】【转】Church论题
  6. 基于Java+MySQL的学生成绩管理系统
  7. CSR8675的学习笔记:驱动正交编码器
  8. Gym - 102569A
  9. 模板设计模式 -- 给大佬递咖啡
  10. linux的LCD的驱动编写