android中基于http的通信,Android中使用HTTP和HttpClient进行通信

/**

* 使用HTTP的Get方式进行数据请求

*/

protected void httpGet() {

/**

* 进行异步请求

*/

new AsyncTask() {

@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() {

@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() {

@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() {

@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 list = new ArrayList(

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");

}

截图:

ce01803e68b27aeb7b0c2e852eb80376.png

4fd8930f68ab6b47093ee3dce64271b0.png

77131ec19c9220171c3d8c9169451c6a.png

c62c7439dc5e0662b4dcdc138b9ef560.png

Android中两个Activity之间简单通信

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

Android中Service和Activity之间的通信

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

Android中BroadCast与Activity之间的通信

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

Android中Service与多个Activity通信

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

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

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

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

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

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

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

android 中的Http请求类HttpUrlConnection和HttpClient类

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

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

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

随机推荐

div根据内容改变大小并且左右居中

div{ display:inline-block; width:auto; } 这个div的父元素text-align:center;

【制作镜像Win&ast;】系统安装

图形化安装系统,在询问“进行何种类型的安装?”时,选择“自定义(高级)” 下一步看不到硬盘,如图: 选择“加载驱动程序”,安装驱动. 将相应版本的netkvm.inf和viostor.inf装上. 继 ...

hdu1166敌兵布阵

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

Samba在CentOS下的图形化界面的安装

第一步:构建yum仓库(在此用的是北交大的yum仓库) 打开目录/etc/yum.repos.d下的CentOS-Base.repo文件,此处是我自己建的yum仓库,修改里面的链接地址为北交大的镜像的 ...

JavaScript属性中的offsetLeft、offsetWidth、clientWidth、scrollLeft、scrollWidth、innerWidth

1.offsetLeft和offsetTop 只读属性,返回当前元素与父辈元素之间的距离(不包括边框).其中父辈元素的取法是有门道的: (1).若父辈元素中有定位的元素,那么就返回距离当前元素最近的定 ...

3p

哈,不要自卑.爱情和婚姻可遇不可求,缘到自然成.首要的是人好,容貌別太差,毕竟天天在一起看着要舒心才好,另外应该有上进心,避免势利小人.这些,都要看机缘.所谓right person at right ...

安卓作为udp服务器,PC作为客户端,仅监听

安卓客户端作为udp服务器,监听其他客户端的数据,测试已成功 本次实验所用数据: 安卓作为服务器: 端口:8888            IP:192.168.1.104 电脑作为客户端: 端口:50 ...

MySQL中查询时&quot&semi;Lost connection to MySQL server during query&quot&semi;报错的解决方案

一.问题描述: mysql数据库查询时,遇到下面的报错信息: 二.原因分析: dw_user 表数据量比较大,直接查询速度慢,容易"卡死",导致数据库自动连接超时.... 三.解决 ...

linux-php5&period;6-安装sftp扩展

一. 更新gc库,添加libssh2库 yum -y install libstdc libgomp cpp gcc libgfortran libssh2 libssh2-devel gcc-gfo ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值