Android中基于HTTP的通信技术(1)使用Http的Get方式读取网络数据

来源:互联网 发布:mac os x86 编辑:程序博客网 时间:2024/05/18 00:15

学习笔记(来自极客学院)

使用Get方式与网络通信是最常见的Http通信,建立链接之后就可以通过输入流读取网络数据

get方式是听过url传递数据的

package com.example.httpget;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.btn_get).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//获取数据new AsyncTask<String, Void, Void>(){@Overrideprotected Void doInBackground(String... params) {try {URL url = new URL(params[0]);URLConnection connection = url.openConnection();//(openConnection)Returns a new connection to the resource referred to by this URL.InputStream is = connection.getInputStream();//Returns an InputStream for reading data from the resource pointed by this URLConnectionInputStreamReader isr = new InputStreamReader(is,"utf-8");BufferedReader br = new BufferedReader(isr);//封装完毕String line;while((line = br.readLine()) != null){//读取到的每行数据System.out.println(line);}//按顺序关闭br.close();isr.close();is.close();} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}  //借用有道翻译的一个api,返回xml格式的数据}.execute("http://fanyi.youdao.com/openapi.do?keyfrom=HttpGethz&key=2133763296&type=data&doctype=xml&version=1.1&q=good");}});}

get方法是将要传递给服务器的内容放在url中进行传递的,真实的url是
<span style="font-family:Microsoft YaHei;font-size:14px;color:#ff0000;">http://fanyi.youdao.com/openapi.do</span>
问号后面的则是数据.



0 0
原创粉丝点击