**Android高级应用开发第五章---HttpUrlConnection**
一.什么是Http请求?
1.HTTP请求是客户端和服务器端之间,发送请求和返回应答的标准(TCP)。
2.客户端发出一个HTTP请求后,就与服务器建立起了TCP连接,服务器接收到请求并进行处理后返回给客户端响应数据。
二.什么是HttpUrlConnection?
HttpUrlConnection是java的标准指定网站发送GET请求、POST请求类,HttpUrlConnection继承自UrlConnection,可用于向指定网站发送GET请求、POST请求,HttpUrlConnection在使用上相对简单,并且易于扩展,推荐使用。
三.如何使用HttpUrlConnection?
1.创建URL对象。
2.通过URL对象调用openConnection()方法获得HttpUrlConnection对象。
3.HttpUrlConnection对象设置其他连接属性。
4.HttpUrlConnection对象调用getInputStream()方法向服务器发送http请求并获取到服务器返回的输入流。
5.读取输入流,转换成String字符串。
四.使用HttpUrlConnection获取Http请求(以访问csdn网站为例,附代码)
1.布局文件:
<Button
android:id="@+id/getwebbtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点我一下"/>
2.java文件:
public class HttpActivity extends AppCompatActivity {
private Button getwebBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_http);
bindID();
getwebBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(new Runnable() {
@Override
public void run() {
getwebInfo();
}
}).start();
}
});
}
private void getwebInfo() {
try {
//1.找水源--创建URL
URL url=new URL("http://www.baidu.com/");
//2.开水闸--openConnection HttpURLConnection httpURLConnection= (HttpURLConnection) url.openConnection();
//3.建管道--InputStream InputStream inputStream=httpURLConnection.getInputStream();
//4.建蓄水池蓄水--InputStreamReaderInputStreamReader reader=new InputStreamReader(inputStream,"UTF-8");
//5.水桶盛水(获取数据)
BufferedReader bufferedReader=new BufferedReader(reader);
StringBuffer stringBuffer=new StringBuffer();
String temp=null;
while((temp=bufferedReader.readLine())!=null){
stringBuffer.append(temp);
}
bufferedReader.close();
reader.close();
inputStream.close();
Log.e("MAIN",stringBuffer.toString());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void bindID() {
getwebBtn=findViewById(R.id.getwebbtn);
}
}