Android之HTTP网络通信--GET传递
说明
在做一个项目的时候难免会与服务器打交道,这里我就做一个小的Demo来简单的说明一下HTTP的使用,我这里使用的是图灵的接口,你也可以登陆www.tuling123.com进行申请。我使用的是上面的示例接口http://www.tuling123.com/openapi/api?key=6*********ddfff&info=今天天气怎么样&loc=北京市中关村&userid=12345678,这里的接口我就不给大家完全展示出来了,大家自己去申请吧,我只给大家演示一下示例。
接口
http://www.tuling123.com/openapi/api?key=6*********ddfff&info=今天天气怎么样&loc=北京市中关村&userid=12345678
效果截图
客户端的显示(一)

logCat的显示
客户端的显示(二)

MianActivity的代码显示如下:
package com.example.httpdemo; import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView; public class MainActivity extends Activity implements HttpDataUrlListener{ private HttpData httpdata;
private TextView tx; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
httpdata = (HttpData) new HttpData("http://www.tuling123.com/openapi/api?key=6***************dfff&info=今天天气怎么样&loc=北京市中关村&userid=12345678",this).execute();
tx = (TextView)findViewById(R.id.txt); } @Override
public void GetDataUrl(String data) {
// TODO Auto-generated method stub
System.out.println(data);
tx.setText(data);
} }
创建的HttpData类的代码是用来Http通信
package com.example.httpdemo; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient; import android.os.AsyncTask; public class HttpData extends AsyncTask<String, Void, String>{ //1.创建客户端
private HttpClient mhttpclient;
//2。指明传递的方法
private HttpGet mhttpget;
//3.做出回应
private HttpResponse mhttpresponse;
//4.创建实体
private HttpEntity mhttpentity;
//5.使用数据流进行数据的传输
private InputStream in;
//6.创建缓冲区
private BufferedReader br;
//7.储存所有的数据
private StringBuffer sb; //声明接口
private HttpDataUrlListener listener; private String url; public HttpData(){
}
public HttpData(String url){
this.url = url;
}
public HttpData(String url,HttpDataUrlListener listener){
this.url = url;
this.listener = listener;
} @Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub try {
//实例化一个客户端
mhttpclient = new DefaultHttpClient();
//使用get方法进行传递
mhttpget = new HttpGet(url);
//通过客户端进行发送
mhttpresponse = mhttpclient.execute(mhttpget);
//通过response方法获取实体
mhttpentity = mhttpresponse.getEntity();
//通过流获取具体的内容
in = mhttpentity.getContent();
//创建缓冲区
br = new BufferedReader(new InputStreamReader(in));
String line = null;
sb = new StringBuffer();
while ((line = br.readLine())!=null){
sb.append(line);
}
return sb.toString();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return null;
} @Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
listener.GetDataUrl(result);
super.onPostExecute(result);
} }
创建一个接口HttpDataUrlListener以便于别的类可以使用这个HTTP类
package com.example.httpdemo;
public interface HttpDataUrlListener {
void GetDataUrl(String data);
}
通过上面的代码就可以实现上面的效果图了,解释说明还有步骤都写在了代码里面,有什么不明白的可以给我留言,对于这篇博客有什么不对的地方,还望大家多多指导。
Android之HTTP网络通信--GET传递的更多相关文章
- Android之HTTP网络通信--GET传递(二)
根据上一篇写的是实现了通过url接口将接口中的数据显示出来,这次根据上一篇的基础,进一步说明一下AsynTask的使用. AsynTask类有几个函数是大家必须知道的. doInBackGround( ...
- Android消息传递之组件间传递消息
前言: 上篇学习总结了Android通过Handler消息机制实现了工作线程与UI线程之间的通信,今天来学习一下如何实现组件之间的通信.本文依然是为学习EventBus做铺垫,有对比才能进步,今天主要 ...
- 使用HttpURLConnection实现在android客户端和服务器之间传递对象
一般情况下,客户端和服务端的数据交互都是使用json和XML,相比于XML,json更加轻量级,并且省流量,但是,无论我们用json还是用xml,都需要我们先将数据封装成json字符串或者是一个xml ...
- android跟服务器使用json传递数据
最近在做项目,使用了json传递数据,把服务器对象转换成json字符串返回,android使用gson包解析json字符串变成对象. 1.服务器代码编写,我这边是在servlet里面 Peron pe ...
- [Android Pro] AIDL进程间传递自定义类型参数
1.创建.aidl 文件 AIDL 语法简单,用来声明接口,其中的方法接收参数和返回值,但是参数和返回值的类型是有约束的,且有些类型是需要 import,另外一些则无需这样做. AIDL 支持的数据类 ...
- android Service Activity交互之传递复杂数据类型的远程服务
远程服务往往不只是传递java基本数据类型.这时需要注意android的一些限制和规定: android支持String和CharSequence 如果需要在aidl中使用其他aidl接口类型,需要i ...
- Android 开发中使用Intent传递数据的方法
Activity之间通过Intent传递值,支持基本数据类型和String对象及 它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.shor ...
- 【转】Android中如何使用Bundle传递对象[使用Serializable或者Parcelable] -- 不错
原文网址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1211/694.html Android中Bundle类的作用 Bun ...
- 【Android 复习】 : Activity之间传递数据的几种方式
在Android开发中,我们通常需要在不同的Activity之间传递数据,下面我们就来总结一下在Activity之间数据传递的几种方式. 1. 使用Intent来传递数据 Intent表示意图,很多时 ...
随机推荐
- 任务栏窗口和状态图标的闪动 z
Demo程序: 实现任务栏窗体和图标的闪动: 整个程序是基于Windows Forms的,对于任务栏右下角状态图标的闪动,创建了一个类型:NotifyIconAnimator,基本上是包装了Windo ...
- 黑盒测试用例设计方法&理论结合实际 -> 正交试验法
一. 概念 依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.类似的方法有:聚类分析方法,因子方法方法等. 二. ...
- DNS(一)简介
最近学习相关DNS知识,顺便总结下相关内容. 1.什么是DNS DNS(Domain Name System)服务,可以使用域名代替复杂的IP地址来访问网络服务器,使得网络服务的访问更加简单,而且可以 ...
- 【原】Storm及特点
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
- extern "C"的用法解析(转)
原文链接:http://www.cnblogs.com/rollenholt/archive/2012/03/20/2409046.html 1.引言 C++语言的创建初衷是“a better C ...
- poj 1741 Tree(点分治)
Tree Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 15548 Accepted: 5054 Description ...
- 机器学习总结之逻辑回归Logistic Regression
机器学习总结之逻辑回归Logistic Regression 逻辑回归logistic regression,虽然名字是回归,但是实际上它是处理分类问题的算法.简单的说回归问题和分类问题如下: 回归问 ...
- angularjs 中ie兼容性的问题收集
今天在项目中做ie8的兼容的时候,发现angularjs中一些内容这样写有问题,那样写就没有问题了,自己记录一下内容: 如果遇到了ie8中使用$http.post请求不到数据的时候,以下的方法是获取不 ...
- A Tour of Go Exercise: HTTP Handlers
Implement the following types and define ServeHTTP methods on them. Register them to handle specific ...
- UIKit: UIResponder(转自南峰子博客)
有问题可以加本人QQ:564702640(验证:博客园) 我们的App与用户进行交互,基本上是依赖于各种各样的事件.例如,用户点击界面上的按钮,我们需要触发一个按钮点击事件,并进行相应的处理,以给用户 ...