/**
* 使用HTTP的Get方式进行数据请求
*/
protected void httpGet() {
/**
* 进行异步请求
*/
new AsyncTask<String, Void, Void>() { @Override
protected Void doInBackground(String... params) {
System.err.println("httpGet start");
// 在此方法中只能进行数据处理,不能与进行UI交互
try {
URL url = new URL(params[0]);
URLConnection connection = url.openConnection();
InputStream is = connection.getInputStream();
// 使用UTF-8的方式进行数据流转化,从字节流转化为字符流
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
System.err.println(line);
}
// 关闭数据流
br.close();
isr.close();
is.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}.execute("http://fanyi.youdao.com/openapi.do?keyfrom=***&key=***&type=data&doctype=json&version=1.1&q=good");
} /**
* 使用HTTP的Post方式进行数据请求
*/
protected void httpPost() {
/**
* 进行异步请求
*/
new AsyncTask<String, Void, Void>() { @Override
protected Void doInBackground(String... params) {
System.err.println("httpPost start");
// 在此方法中只能进行数据处理,不能与进行UI交互
try {
URL url = new URL(params[0]);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
// 设置请求方式以及设置参数 // 设置是否向HttpURLConnection对象输出
connection.setDoOutput(true);
// 设置请求方式
connection.setRequestMethod("POST"); // 设置参数
OutputStream os = connection.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");
BufferedWriter bw = new BufferedWriter(osw);
bw.write(params[1]);
bw.flush(); InputStream is = connection.getInputStream();
// 使用UTF-8的方式进行数据流转化,从字节流转化为字符流
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
System.err.println(line);
}
// 关闭数据流
br.close();
isr.close();
is.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}.execute("http://fanyi.youdao.com/openapi.do",
"keyfrom=***&key=***&type=data&doctype=json&version=1.1&q=good"); } private HttpClient httpClient; /**
* 使用HttpClient进行Get请求
*/
protected void httpClientGet() {
new AsyncTask<String, Void, Void>() { @Override
protected Void doInBackground(String... params) {
System.err.println("httpClientGet start");
String urlString = params[0];
HttpGet httpGet = new HttpGet(urlString);
try {
// 发送请求
HttpResponse response = httpClient.execute(httpGet);
// 获取返回内容
String value = EntityUtils.toString(response.getEntity());
System.err.println(value);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}.execute("http://fanyi.youdao.com/openapi.do?keyfrom=***&key=***&type=data&doctype=json&version=1.1&q=good");
} /**
* 使用HttpClient进行Post请求
*/
protected void httpClientPost() {
new AsyncTask<String, Void, Void>() { @Override
protected Void doInBackground(String... params) {
System.err.println("httpClientPost start");
String urlString = params[0];
HttpPost httpPost = new HttpPost(urlString);
try {
// 设置参数
String[] paramsArr = params[1].split("&");
int len = paramsArr.length;
List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>(
len);
BasicNameValuePair pair = null;
for (int i = 0; i < len; i++) {
String[] paramArr = paramsArr[i].split("=");
pair = new BasicNameValuePair(paramArr[0], paramArr[1]);
list.add(pair);
}
httpPost.setEntity(new UrlEncodedFormEntity(list));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
} try {
// 发送请求
HttpResponse response = httpClient.execute(httpPost);
// 获取返回内容
String value = EntityUtils.toString(response.getEntity());
System.err.println(value);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}.execute("http://fanyi.youdao.com/openapi.do",
"keyfrom=***&key=***&type=data&doctype=json&version=1.1&q=good");
}

截图:

Android中使用HTTP和HttpClient进行通信的更多相关文章

  1. Android中两个Activity之间简单通信

    在Android中,一个界面被称为一个activity,在两个界面之间通信,采用的是使用一个中间传话者(即Intent类)的模式,而不是直接通信. 下面演示如何实现两个activity之间的通信. 信 ...

  2. Android中Service和Activity之间的通信

    启动Service并传递数据进去: Android中通过Intent来启动服务会传递一个Intent过去. 可以在Intent中通过putExtra()携带数据 Intent startIntent ...

  3. Android中BroadCast与Activity之间的通信

    在看本文之前,假设你对于Android的广播机制不是非常了解.建议先行阅读我转载的一篇博文:图解 Android 广播机制. 因为本案例比較简单,故直接在此贴出代码,不做过多的阐述. 先上效果截图: ...

  4. Android中Service与多个Activity通信

    由于项目需要,我们有时候需要在service中处理耗时操作,然后将结果发送给activity以更新状态.通常情况下,我们只需要在一个service与一个activity之间通信,通常这种情况下,我们使 ...

  5. android中的HttpURLConnection和HttpClient实现app与pc数据交互

    自学android的这几天很辛苦,但是很满足,因为每当学到一点点知识点都会觉得很开心,觉得今天是特别有意义的,可能这个就是一种莫名的热爱吧. 下面来说说今天学习的HttpURLConnection和H ...

  6. Android中的常见通信机制和Linux中的通信机制

    Handler Handler是Android系统中的一种消息传递机制,起作用是应对多线程场景.将A进程的消息传递给B线程,实现异步消息处理.很多情况是将工作线程中需要更新UI的操作消息传递给UI主线 ...

  7. Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解

    Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756 ...

  8. android 中的Http请求类HttpUrlConnection和HttpClient类

    Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient. 如何选择这两个类的使用:android-developers.blogspot.com/2011 ...

  9. 网络相关系列之中的一个:Android中使用HttpClient发送HTTP请求

    一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 "超文本传输协议",是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议,是 ...

随机推荐

  1. Spring-Mybatis 异常记录(1)

    Spring  applicationconfig.xml如下 <?xml version="1.0" encoding="UTF-8"?> < ...

  2. CENTOS6.2系统日志rsyslog替换默认的日志服务syslog 转载自http://www.phpboy.net/linux/648.html

    最近遇到配置centos 6.2的sshd及sftp日志,发现/etc/syslog.conf文件不存在, 然后: #rpm -qa | grep syslog 出来的是 rsyslog-5.8.10 ...

  3. centos安装mysql(rpm)

    今天安装mysql时候出现错误MySQL conflicts with mysql-4.1.20-2 查看是否安装过mysql rpm -qa mysql 发现安装了老版本的mysql 使用rpm - ...

  4. MySQL excel导入错误 Out of range value adjusted for column

    修改my.ini,将 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"改为 sql ...

  5. NavigationBar的简单设置

    http://blog.csdn.net/hufeng825/article/details/7643532#) .Label属性设置 titleLabel = [[UILabel alloc] in ...

  6. WPF 一个弧形手势提示动画

    这是一个操作提示动画,一个小手在屏幕上按照一个弧形来回运动 <Window x:Class="LZRichMediaWall.MainWindow" xmlns=" ...

  7. Array和ArrayList的异同点【转】

    相信数组是大家在编程最常使用的,不论任何语言都存在数组这样的数据结构,由于C#语言是完全面向对象的,所以在C#中的数组也是对象,实际上就是Array类的实例,Array类的使用可以说是使用最频繁的,只 ...

  8. 使用IO流创建文件并写入数据

    /* 字符流和字节流: 字节流两个基类: InputStream OutputStream 字符流两个基类: Reader Writer 既然IO流是用于操作数据的, 那么数据的最常见体现形式是:文件 ...

  9. static方法不能直接访问类内的非static变量和不能调用this,super语句分析

    大家都知道在static方法中,不能访问类内非static成员变量和方法.可是原因是什么呢? 这首先要从static方法的特性说起.static方法,即类的静态成员经常被称为"成员变量&qu ...

  10. php集成开发环境IDE

    ZendStudio EclipsePHP PhpStorm NetBeans