一、什么是Http请求?
Http"超文本传输协议",是互联网上应用最为广泛的一种网络协议,用于实现互联网中的WWW服务,大多数网站都是使用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网站为例,附代码)
public class MainActivity extends Activity{
private Button getwebBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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("https://www.csdn.net/");
//2.开水闸--openConnection
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
//3.建管道--InputStream
InputStream inputStream = httpURLConnection.getInputStream();
//4.建蓄水池蓄水--InputStreamReader
InputStreamReader reader = new InputStreamReader(inputStream,"UTF-8");
//5.水桶盛水--BufferedReader
BufferedReader bufferedReader = new BufferedReader(reader);
StringBuilder stringBuilder = new StringBuilder();
String temp = null;
while ((temp = bufferedReader.readLine())!=null){
stringBuilder.append(temp);
}
bufferedReader.close();
reader.close();
inputStream.close();
Log.e("MAIN",stringBuilder.toString());
}
catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
private void bindID() {
getwebBtn = findViewById(R.id.getweb_Btn);
}
}