- 浏览: 227031 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (109)
- IOS (15)
- 设计模式 (7)
- XML (1)
- Android (31)
- 面试经 (1)
- J2EE (3)
- android md5 加密 (2)
- android imagebutton文字实现 (1)
- 反射机制 (2)
- 基础知识 (1)
- linux (3)
- java (4)
- java基础 (2)
- 文章 (1)
- myeclipse tomcat (1)
- Hadoop (1)
- ubuntu (2)
- redmine (1)
- python (4)
- jmeter (10)
- xamarin (1)
- selenium (9)
- nexus (1)
- appium (3)
- BDD (1)
- apache2 (1)
- zabbix (2)
- python,webdriver (1)
- ajax (1)
- jmeter,正则表达式,关联 (2)
- 性能测试工具 (1)
- Django (0)
- Intelij (1)
- RAP (0)
- 性能测试 (0)
最新评论
客户端代码示例:
/**
* HTTP请求
* @author kesenhoo
*
*/
public class HttpRequest
{
public static boolean sendXML(String path, String xml)throws Exception
{
byte[] data = xml.getBytes();
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setConnectTimeout(5 * 1000);
//如果通过post提交数据,必须设置允许对外输出数据
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
conn.setRequestProperty("Content-Length", String.valueOf(data.length));
OutputStream outStream = conn.getOutputStream();
outStream.write(data);
outStream.flush();
outStream.close();
if(conn.getResponseCode()==200)
{
return true;
}
return false;
}
/**
* 通过get方式提交参数给服务器
* @param path
* @param params
* @param enc
* @return
* @throws Exception
*/
public static boolean sendGetRequest(String path, Map<String, String> params, String enc) throws Exception
{
//构造如下形式的字符串,这里的字符串依情况不同
// ?method=save&title=435435435&timelength=89&
//使用StringBuilder对象
StringBuilder sb = new StringBuilder(path);
sb.append('?');
//迭代Map
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 = new URL(sb.toString());
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
//如果请求响应码是200,则表示成功
if(conn.getResponseCode()==200)
{
return true;
}
return false;
}
/**
* 通过Post方式提交参数给服务器
* @param path
* @param params
* @param enc
* @return
* @throws Exception
*/
public static boolean sendPostRequest(String path, Map<String, String> params, String enc) throws Exception
{
//需要构造的字符串形式如下:
// title=dsfdsf&timelength=23&method=save
StringBuilder sb = new StringBuilder();
//如果参数不为空
if(params!=null && !params.isEmpty())
{
for(Map.Entry<String, String> entry : params.entrySet())
{
//Post方式提交参数的话,不能省略内容类型与长度
sb.append(entry.getKey()).append('=')
.append(URLEncoder.encode(entry.getValue(), enc)).append('&');
}
sb.deleteCharAt(sb.length()-1);
}
//得到实体的二进制数据
byte[] entitydata = sb.toString().getBytes();
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setConnectTimeout(5 * 1000);
//如果通过post提交数据,必须设置允许对外输出数据
conn.setDoOutput(true);
//这里只设置内容类型与内容长度的头字段
//内容类型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();
//如果请求响应码是200,则表示成功
if(conn.getResponseCode()==200)
{
return true;
}
return false;
}
/**
* 在遇上HTTPS安全模式或者操作cookie的时候使用HTTPclient会方便很多
* 使用HTTPClient(开源项目)向服务器提交参数
* @param path
* @param params
* @param enc
* @return
* @throws Exception
*/
public static boolean sendRequestFromHttpClient(String path, Map<String, String> params, String enc) throws Exception
{
//需要把参数放到NameValuePair
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 entitydata = new UrlEncodedFormEntity(paramPairs, enc);
//构造一个请求路径
HttpPost post = new HttpPost(path);
//设置请求实体
post.setEntity(entitydata);
//浏览器对象
DefaultHttpClient client = new DefaultHttpClient();
//执行post请求
HttpResponse response = client.execute(post);
//从状态行中获取状态码,判断响应码是否符合要求
if(response.getStatusLine().getStatusCode()==200)
{
return true;
}
return false;
}
}
/**
* HTTP请求
* @author kesenhoo
*
*/
public class HttpRequest
{
public static boolean sendXML(String path, String xml)throws Exception
{
byte[] data = xml.getBytes();
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setConnectTimeout(5 * 1000);
//如果通过post提交数据,必须设置允许对外输出数据
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
conn.setRequestProperty("Content-Length", String.valueOf(data.length));
OutputStream outStream = conn.getOutputStream();
outStream.write(data);
outStream.flush();
outStream.close();
if(conn.getResponseCode()==200)
{
return true;
}
return false;
}
/**
* 通过get方式提交参数给服务器
* @param path
* @param params
* @param enc
* @return
* @throws Exception
*/
public static boolean sendGetRequest(String path, Map<String, String> params, String enc) throws Exception
{
//构造如下形式的字符串,这里的字符串依情况不同
// ?method=save&title=435435435&timelength=89&
//使用StringBuilder对象
StringBuilder sb = new StringBuilder(path);
sb.append('?');
//迭代Map
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 = new URL(sb.toString());
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
//如果请求响应码是200,则表示成功
if(conn.getResponseCode()==200)
{
return true;
}
return false;
}
/**
* 通过Post方式提交参数给服务器
* @param path
* @param params
* @param enc
* @return
* @throws Exception
*/
public static boolean sendPostRequest(String path, Map<String, String> params, String enc) throws Exception
{
//需要构造的字符串形式如下:
// title=dsfdsf&timelength=23&method=save
StringBuilder sb = new StringBuilder();
//如果参数不为空
if(params!=null && !params.isEmpty())
{
for(Map.Entry<String, String> entry : params.entrySet())
{
//Post方式提交参数的话,不能省略内容类型与长度
sb.append(entry.getKey()).append('=')
.append(URLEncoder.encode(entry.getValue(), enc)).append('&');
}
sb.deleteCharAt(sb.length()-1);
}
//得到实体的二进制数据
byte[] entitydata = sb.toString().getBytes();
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setConnectTimeout(5 * 1000);
//如果通过post提交数据,必须设置允许对外输出数据
conn.setDoOutput(true);
//这里只设置内容类型与内容长度的头字段
//内容类型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();
//如果请求响应码是200,则表示成功
if(conn.getResponseCode()==200)
{
return true;
}
return false;
}
/**
* 在遇上HTTPS安全模式或者操作cookie的时候使用HTTPclient会方便很多
* 使用HTTPClient(开源项目)向服务器提交参数
* @param path
* @param params
* @param enc
* @return
* @throws Exception
*/
public static boolean sendRequestFromHttpClient(String path, Map<String, String> params, String enc) throws Exception
{
//需要把参数放到NameValuePair
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 entitydata = new UrlEncodedFormEntity(paramPairs, enc);
//构造一个请求路径
HttpPost post = new HttpPost(path);
//设置请求实体
post.setEntity(entitydata);
//浏览器对象
DefaultHttpClient client = new DefaultHttpClient();
//执行post请求
HttpResponse response = client.execute(post);
//从状态行中获取状态码,判断响应码是否符合要求
if(response.getStatusLine().getStatusCode()==200)
{
return true;
}
return false;
}
}
发表评论
-
Starting emulator for AVD 'android' PANIC: Could not open: android
2013-05-21 13:29 1929我的电脑-->属性-->高级-->环境变量。 ... -
eclipse4.2版本下面安装ADT,安装已经完成了,但没有ADT的那个图标显示
2013-05-21 13:26 943如果安装过程没错,直接在Eclipse ->window ... -
Android 打包签名 从生成keystore到完成签名 -
2012-10-30 00:49 959首先,我们需要一个keystore,当然已经有了的话就不用这一 ... -
解决更新并使用最新ADT20不能创建android项目问题
2012-10-18 22:20 1056不知道谷歌又怎么了,每次更新ADT插件就会出现各种各样的问题, ... -
ORACLE分页查询SQL语法
2012-10-18 22:20 1212oracle数据库 --1:无ORDER BY ... -
Activity生命周期
2012-10-18 22:20 1141博客分类: Android 新的activit ... -
布局
2012-10-18 22:21 1097padding:描述控件里面的内容与控件的关机,内边距;有四个 ... -
常用控件:TextView EditView
2012-10-13 13:32 1187TextView 布局: Xml代 ... -
按钮控件
2012-10-13 13:32 1184监听器: 监听器 方法 内容 OnClickList ... -
菜单
2012-10-13 13:31 1118menu键触发 三种形式:普通的option menu;上下 ... -
HttpClient
2012-10-13 13:31 1135在Android开发中我们经常会用到网络连接功能与服务器进行数 ... -
Android 的一些提示框
2012-10-08 00:57 7911.在测试时,如何实现一个提示 可以使用 Toast.ma ... -
Intent的几种用法
2012-10-08 00:57 936下面列出几种Intent的用法 1. 启动一个新的Activ ... -
Android改变窗口标题栏的布局
2012-10-10 23:26 929一、 重点 一般应用的Title都是建立应用时在Androi ... -
android中如何自定义attributes
2012-10-10 23:26 991写程序中可能需要用到一些自定义的view控件,这样就需要增加一 ... -
android manifest.xml中元素含义
2012-10-08 00:56 845android:allowTaskReparenting 是 ... -
十二个android编程技巧
2012-10-10 23:26 10081.让一个图片透明: Java代码 1. Bitm ... -
Android Phone类分析
2012-10-10 23:26 1232AccelerometerListener:感应 ... -
android控件设置居中方式
2012-10-07 00:16 8467垂直居中 android:layout_centerVert ... -
android TextView属性大全
2012-10-10 23:28 985android:autoLink设置是否当 ...
相关推荐
在Android应用开发中,客户端与服务器端的数据交互是不可或缺的一部分,JSON作为一种轻量级的数据交换格式,被广泛用于Android和服务器之间的通信。本教程将详细阐述Android客户端如何使用JSON进行数据交互,包括...
2.Get方式与服务器端交互数据. 3.Post方式与服务器端交互数据. 4.HttpClient方式与服务器端交互数据. 5.上传文件到服务器端. 6.从服务器端下载文件. 7.从服务器端读取文本文件. http://blog.csdn.net/lk_blog
HTTPPost是HTTP协议中的一种方法,用于向指定资源提交数据以请求服务器进行处理。本篇主要介绍如何在Android应用中使用HttpPost实现与服务器的通信,以及涉及到的相关技术点。 首先,我们需要理解Android网络访问的...
- **POST请求**:用于向服务器提交数据,数据封装在请求体中,无长度限制,相对更安全。在Demo中,POST请求可能用于提交用户输入或者上传文件。 6. **数据序列化与反序列化**: 在Android与PC通信过程中,数据...
而HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,它定义了客户端和服务器之间交换数据的方式。Android作为移动开发平台,常常需要通过HTTP与Web服务器进行数据交互,实现客户端应用的功能。 1. ...
HttpClient是Android平台上一个重要的网络通信库,主要用于向服务器发起HTTP请求并处理响应。它提供了丰富的API,使得开发者能够灵活地构建各种复杂的网络交互场景。在Android应用开发中,HttpClient是获取Web服务...
在进行数据交换时,通常需要将Java对象序列化为JSON或XML格式,再由服务器反序列化为服务器端对象。Android中可以使用Gson、Jackson或Fastjson等库进行数据转换。 七、安全性考虑 在进行HTTP通信时,应考虑数据的...
虽然Android API Level 26后不再支持Apache的HttpClient库,但在早期版本或第三方库中,HttpClient仍广泛使用。它提供了更丰富的功能,如自动处理重定向、管理Cookie、支持HTTPS等。源码示例会展示如何创建...
- **服务器端处理**:在服务器端对数据进行编码转换,确保客户端接收到正确的编码。 #### 五、总结 在Android移动互联开发中,掌握HTTP通信和Socket通信是非常重要的。这两种技术各有优势,可以根据具体需求选择...
在Android开发中,客户端与服务器端的交互是应用程序的核心部分,尤其当涉及到数据交换和远程服务调用时。本示例主要关注Android客户端如何与Servlet服务端进行有效的通信,涉及了多种数据传输方式,如传递参数、...
在这个过程中,客户端通常指的是用户设备上的应用,如浏览器、手机APP或者桌面软件,而服务器端则是运行在远程计算机上的程序,负责处理客户端的请求并返回数据。本文将深入探讨客户端与服务器端通讯的原理、常用...
在Android开发中,如果需要通过HTTP客户端(如HttpClient)将图片上传到服务器,由于HTTP协议本身只支持ASCII字符,不能直接传输二进制数据,因此通常会先将图片数据转化为Base64字符串,再以文本形式发送,服务器端...
本示例主要关注使用HTTP协议进行客户端-服务器通信,分为Android客户端和Java Servlet服务器端两部分。 首先,我们来看Android客户端的开发。Android提供了一系列API来支持HTTP通信,主要包括HttpURLConnection和...
在Android应用开发中,HTTP通信是连接客户端应用与服务器端数据交换的重要手段。这个"android HTTP通信简单Demo"提供了一个基础的示例,用于展示如何在Android应用中实现HTTP请求和响应。在这个教程中,我们将深入...
在IT领域,HTTP(超文本传输协议)是网络上应用最为广泛的一种协议,它用于从万维网服务器传输超文本到本地浏览器。本篇将详细探讨两种常见的Java实现HTTP通信的方法:HttpClient和HttpURLConnection。 首先,...
然而,由于维护问题,`HttpClient`在新版本的Android SDK中已被弃用,推荐使用`HttpURLConnection`或第三方库如OkHttp。 4. **XML解析**:移动应用接收到XML数据后,需要解析成应用程序可以理解的结构。Android提供...
4. **Java Servelet**:在后端,我们使用Java Servelet作为服务器端处理程序。Servelet是Java EE中用于接收和响应HTTP请求的组件。一个基本的Servlet生命周期包括初始化、服务、销毁三个阶段。 5. **Servlet配置**...