- 浏览: 922239 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (453)
- Windows phone 7 (0)
- Andriod (47)
- iPhone (1)
- Web (30)
- J2EE (34)
- stucts 2学习笔记 (34)
- 开发项目 (3)
- spring学习笔记 (24)
- EJB学习笔记 (6)
- Hibernate学习笔记 (15)
- JPA学习笔记 (8)
- Jsp (11)
- ajax (7)
- 异常收集模块 (1)
- jquery (2)
- phoneGap (2)
- jquery Mobile (0)
- java面试总结 (5)
- Object-C (0)
- javascript (6)
- Eclipse (5)
- 支付集成 (2)
- Weblogic (1)
- Dubbox (5)
- Redis (10)
- linux (21)
- Codis (2)
- React Native (0)
- Mysql (6)
- Docker (3)
- 自动化部署 (1)
- 项目Bug管理平台 (2)
- 负载均衡 (1)
- Mycat (2)
- Java基础知识 (16)
- 数据库 (7)
- Maven (17)
- Kafka (21)
- logs (2)
- 大并发 (2)
- 消息中间件 (2)
- 分布式锁 (3)
- 算法 (4)
- 数字证书原理,公钥私钥 (0)
- 数字证书原理 (1)
- 公钥私钥 (1)
- zookeeper (4)
- Hbase (9)
- Hadoop (2)
- storm (2)
- 通信协议 (1)
- Hive (3)
- git (1)
- JVM (2)
- 大数据相关算法 (1)
- idea (5)
- 将博客搬至CSDN (1)
- 设计模式 (2)
- 表达式 (1)
- 代码审查工具 (0)
- 开源项目 (1)
- PyCharm (0)
- python (6)
- Kubernetes (1)
- swagger (1)
- Maven中mirrors和repository的关系 (0)
- RabbitMQ (3)
- redisson (1)
- k8s (2)
- Mac (1)
最新评论
-
misisipi101:
假设库已经分为32个,那么要扩展到64个,怎样做呢
订单分库分表实践总结以及关键步骤 -
mfkxk298:
简单明了的例子,解决了问题,谢谢啦!
关于ListView中notifyDataSetChanged()刷新数据不更新原因 -
whbwang:
" target="_blank" ...
java web开发 高并发处理 -
suguoqian:
...
java web开发 高并发处理 -
xiangnanyujing:
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
在我们的实际开发中我们很多时候都需要向服务器提交数据来获取服务器响应数据...
下面我就来总结一下通常使用的提交参数的方法有GET和POST
首先来看一下GET方式提交数据 注意:GET方式提交数据一般在2k左右(因服务器而异)
GET方式:
看下面的方法
public static boolean sendGetRequest(String path, Map<String, String> params, String enc) throws Exception{
//path 是我们提交参数的路径
//params 是提交的参数,通过一个Map来封装这些提交参数
//enc 是编码方式(一般在服务器是:ISO-8859-1 android:UTF-8 还要常见的 gbk、gb2312)
//下面是组拼提交路径
StringBuilder sb = new StringBuilder(path);
sb.append('?');
//提交参数----> ?method=save&title=435435435&timelength=89&
//我们通过先得到这个Map的实体集合,让后通过迭代去得到实体的Key、Value
for(Map.Entry<String, String> entry : params.entrySet()){
sb.append(entry.getKey()).append('=')
.append(URLEncoder.encode(entry.getValue(), enc)).append('&');
}
//去掉最后多月的&
sb.deleteCharAt(sb.length()-1);
//下面的得到url对象打开连接建立通道
URL url = new URL(sb.toString());
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置请求方式 (这里因为是采用Http协议)
conn.setRequestMethod("GET");
//设置请求超时时间
conn.setConnectTimeout(5 * 1000);
if(conn.getResponseCode()==200){
return true;
}
return false;
}
POST方式:
看下面方法:
<1、我们直接面向Http协议去提交数据
//需要HttpWahcer查看去查看请求头协议(在android其它软件)
public static boolean sendPostRequest(String path, Map<String, String> params, String enc) throws Exception{
//path :提交参数路径
//params:是提交数据 通过Map来封装这些数据
//enc:编码方式 -->为了不出现乱码
// --->提交数据:title=dsfdsf&timelength=23&method=save
StringBuilder sb = new StringBuilder();
//组拼提交数据
if(params!=null && !params.isEmpty()){
for(Map.Entry<String, String> entry : params.entrySet()){
sb.append(entry.getKey()).append('=')
.append(URLEncoder.encode(entry.getValue(), enc)).append('&');
}
sb.deleteCharAt(sb.length()-1);
}
//通过HttpWatch可以知道 在我们直接面向Http协议通过POST提交数据时我们可以只需
//提交的请求头有Content-Type:和Content-Length: 和我们提交数据即可
//注意:在这里提交的Content-Length:是以二进制来计量长度的
byte[] entitydata = sb.toString().getBytes();//得到实体的二进制数据
//得到连接通道
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置请求方式和连接超时
conn.setRequestMethod("POST");
conn.setConnectTimeout(5 * 1000);
//注意:这里设置允许输出必须设置true因为我们通过Http协议下服务器提交数据所有必须设置输出
conn.setDoOutput(true);//如果通过post提交数据,必须设置允许对外输出数据
//Content-Type: application/x-www-form-urlencoded
//Content-Length: 38
//设置请求头的属性
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(entitydata.length));
//通过通道得到输出流
OutputStream outStream = conn.getOutputStream();
//写出数据
outStream.write(entitydata);
//让缓存中数据及时输出
outStream.flush();
outStream.close();
if(conn.getResponseCode()==200){
return true;
}
return false;
}
<2、
我们通过开源的HttpClient去向服务器提交数据,这里android已经集成了这个开源项目所有就不用加入jar包了
在这个开源的项目中它已经帮助我们封装了上面我们通过直接面向Http协议提交数据中的请求协议部分
方法如下:
//SSL HTTPS Cookie
//注意:如果我们在其他项目中如果用到 SSL 、HTTPS、Cookie时使用这个开源项目会使得编程更简单
public static boolean sendRequestFromHttpClient(String path, Map<String, String> params, String enc) throws Exception{
//参数如上
//下面通过名字对和List集合来封装我们的数据
// NameValuePair就相当于我们的Map
List<NameValuePair> paramPairs = new ArrayList<NameValuePair>();
if(params!=null && !params.isEmpty()){
for(Map.Entry<String, String> entry : params.entrySet()){
paramPairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
}
//通过UrlEncodedFormEntity对我们发送的数据进行编码(enc),让后获得实体数据部分
UrlEncodedFormEntity entitydata = new UrlEncodedFormEntity(paramPairs, enc);//得到经过编码过后的实体数据
//通过HttpPost类来提交我们的数据
HttpPost post = new HttpPost(path); //form
//设置请求提交的数据实体
post.setEntity(entitydata);
//相当于浏览器来提交数据
DefaultHttpClient client = new DefaultHttpClient(); //浏览器
HttpResponse response = client.execute(post);//执行请求
if(response.getStatusLine().getStatusCode()==200){
return true;
}
return false;
}
发表评论
-
App开发一些总结
2016-04-05 17:48 2557架构因人而异,不同的架构师大多会有不同的看法;架构也因项目 ... -
java 实现微信搜索附近人功能
2015-03-25 18:07 4863最近给andorid做后台查询数据功能,有一个需求是模仿微信 ... -
重庆APP开发 重庆Android 重庆Ios 爬虫科技 重庆爬虫科技
2014-10-06 12:03 9<!--[if gte mso 9]><x ... -
android 操作文件
2012-08-30 11:15 1020package com.liyong; import jav ... -
android获取短信内容
2012-08-29 23:10 1497自己研究: package com.liyong.data; ... -
Android中的日历操作
2012-08-29 13:01 2984日历的操作方法,这里主要用到了ContentProiver的知 ... -
android获取CMNET、WIFI、CMWAP联网状态
2012-08-29 12:40 5838private static final int CMNET= ... -
android实现手势缩放、移动图片
2012-08-28 19:37 9215新建一个触摸监听器类 package com.liyong. ... -
怎样把信息绘制到图片中并且保存到本地硬盘上
2012-08-27 12:53 1324自己研究吧。。。 //解释一下由于我们不是绘制到手机屏幕上所 ... -
关于ListView中notifyDataSetChanged()刷新数据不更新原因
2012-08-26 21:41 50258使用Listview的时候: 当要动态显示更改后的数据(例如数 ... -
android中获取联系人相关信息
2012-08-26 18:42 1636自己看........... public static ... -
修改Android中strings.xml文件, 动态改变数据
2012-08-24 18:25 10803有些朋友可能会动态的修改Android中strings.xml ... -
android内存泄漏
2012-07-25 21:04 1671尽量不要使用setImageBitmap或setImageRe ... -
将程序安装到SD卡
2012-04-28 22:11 857Android 2.2系统的一大改进就是通过Move to S ... -
一个很好的加密解密字符串
2012-04-28 22:11 1117package net.sf.andhsli.hotspotl ... -
获取手机位置
2012-04-28 22:11 982private double[] getGPS() { Lo ... -
获取手机位置
2012-05-04 09:39 1047private double[] getGPS() { Lo ... -
查看内存存储
2012-05-03 10:05 1050import java.io.File; import a ... -
获取本机电话号码
2012-05-03 10:04 1084private String getMyPhoneNumber ... -
发送彩信
2012-05-03 10:04 972Uri uri = Uri.parse(\"cont ...
相关推荐
Android向服务器提交数据,完成增加动作
android客户端向服务器提交请求的中文乱码问题
本篇文章主要介绍了Android提交数据到服务器的两种方式四种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
使用HttpURLConnection类提交数据到服务器端,使用HttpClient类到服务器端
Android端使用get post 方法提交数据到服务器demo 传智播客张泽华Android视频54-57代码 包括web和Android端 仅供学习
以4中方式提交数据到服务器,分别是get、post、httpclient的get和httpclient的post方式提交数据到服务器
Android提交数据到服务器的几种方式.pdf
一般而言,Android 应用在请求数据时都是以 Get 或 Post 等方式向远程服务器发起请求,那你有没有想过其实我们也可以在 Android 设备上搭建一个小型 Web 服务器,并且实现常规的下载图片、下载文件、提交表单等功能...
在这我们首先了解Android客户端向服务器提交数据的底层做法。get、post两种方法提交数据,下面我们用示例了解get以及post方式。 需要在布局文件中增加两个个EditText控件和两个登录的Button控件。其中一个Button是...
1.服务器端为ASP+Access2003+IIS 2.移动端为Android 3.移动端将内容提交Request给服务器端 4.代码完整可以运行
java、android http使用post进行提交数据,把数据提交给服务器,服务器通过获取可以存储到数据库
Android GetPost数据提交实例,发送post必须设置 conn....这两行代码,从用户界面提交过来的数据上传到服务器接收,类似于WEB网页提交表单的操作,不过Android有自己独特的地方,这个源码,您可以参考对比一下。
SuperMap iMobile for Android 7.1版本提供了新的数据同步机制。与iServer服务器交互时,可以实现数据集为单位的数据下载,提交及更新。本例示范相关接口与回调的使用方法。
android端和servlet端使用JSON交换数据信息的简单小例子,部分代码在JSP环境下实现,搞过Java WEB开发(JSP)的程序员,应该对Servlet不陌生,Json目前也是流行技术,所以说这个例子将Android、Json、Servlet三者结合...
【正文】 一、XML和Json数据的引入: 通常情况下,每个需要访问网络的应用程序都会有一个自己的服务器,我们可以向服务器提交数据,也可以从服务器获取数据。
从学长那得来的,不知道是哪位大神的,感觉很适合新手,让我受益匪浅,侵删哦,(#^.^#)
Android的JSON示例 一、运行环境: 1.服务器端为ASP+Access2003+IIS 2.移动端为Android2.1(大家可...实现通过Post或Get方法向服务器传送数据 服务端: Webroot文件夹 ASP+Access2003 实现对Android端Request的Response
这是一个简单的在Android客户端连接Asp.Net进行上传或下载的示例,在Android客户端以psot形式发送请求到Asp.Net服务器端,服务器端接收到请求参数后判断是上传还是下载,并进行相应处理。 示例中传输的数据未实体类...
向服务器提交数据有两种方式,post和get。两者的区别主要有三点,安全性、长度限制、数据结构。其中get请求安全性相比较而言较差,数据长度受浏览器地址栏限制,没有方法体。两种都是较为重要的数据提交方式。现简单...