/**
* 使用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. Javascript this 解析

    Javascript中,this是一个非常有用的关键字, this是在运行时基于函数的运行环境绑定的,但是,如果使用的时候不注意,很容易就出错了. ECMAScript Standard对this的定 ...

  2. Noesis.Javascript.dll 引用时报错“找不到指定的模块”

    Could not load file or assembly 'Noesis.Javascript.dll' or one of its dependencies. 找不到指定的模块. 通过反编译发 ...

  3. string和json转换的简单应用

    import com.alibaba.fastjson.JSON; String strjson = request.getParameter("param"); //url-js ...

  4. JS 获取select(多选下拉)中所选值的示例代码

    通过js获取select(多选下拉)中所选值,具体实现如下,有需要的朋友可以参考下,希望对大家有所帮助 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML ...

  5. php 伪静态 (url rewrite mod_rewrite 重写)

    mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面.下面我详细说说它的使用方法!对初学者很有用的哦!1.检测Apache是否支持mod_rewrite通过php提供的php ...

  6. 通过js获取DropDownList的选中项

    <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...

  7. online learning

    转自http://blog.csdn.net/sjkldjflakj/article/details/51886277 不同于以往的批量学习,即给了许多的已标记好的资料来学习出一个假设函数,onlin ...

  8. vim命令总结

    前言 本文翻译自:http://bencrowder.net/files/vim-fu/,参考了VIM中文帮助. Google翻译结果和实际操作结果,对原文的部分内容重新整理,删除和添加了 部分内容并 ...

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

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

  10. z470 装黑苹果 10.92

    1.分两个区,一个是mac安装区,一个是镜像拷贝区. 2.把镜像压进去. 3.安装好系统. 4.把镜像区的 extent拷贝到安装好的系统盘里去. 5.安装驱动,网盘里有.还有系统也在网盘里. 6.声 ...