学习笔记(来自极客学院)
使用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 {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn_get).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//获取数据
new AsyncTask<String, Void, Void>(){
@Override
protected 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 URLConnection
InputStreamReader 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 block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.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>
问号后面的则是数据.