HttpURLConnection
Posted DaLiangChen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpURLConnection相关的知识,希望对你有一定的参考价值。
HttpURLConnection 基本用法
package com.daliang.demo_http1;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Debug;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.ProtocolException;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(){
@Override
public void run() {
HelloHttp();
}
}.start();
}
public void HelloHttp() {
BufferedReader reader=null;
HttpURLConnection conn=null;
try {
URL url =new URL("http://www.baidu.com");
conn =(HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.connect();//发起连接
int code=conn.getResponseCode();//200表示连接成功
if (code==200)
{
InputStream inputStream=conn.getInputStream();
reader=new BufferedReader(new InputStreamReader(inputStream));
StringBuilder result=new StringBuilder();
String line;
while ((line=reader.readLine())!=null)
{
result.append(line);
}
System.out.println("连接网络成功!");
System.out.println(result.toString());
}
else
{
System.out.println("连接网络失败!");
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
if (conn != null) conn.disconnect();
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
需要授予网络权限
<uses-permission android:name="android.permission.INTERNET"/>
从Android4.0开始强制禁止主线程访问网络。
new Thread(){
public void run() {
helloHttp();
}
}.start();
Handler
在Android当中非主线程(UI线程,默认线程,main线程,原始线程)禁止修改UI内容, 所有对于UI的操作全都通过主线程来进行。
在主线程中编写handler对象
Handler handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
String text = (String) msg.obj;
textView.setText(text);
} };
在需要更新UI的地方给handler发送消息
Message msg = new Message();
msg.obj=result.toString();
handler.sendMessage(msg);
以上是关于HttpURLConnection的主要内容,如果未能解决你的问题,请参考以下文章
HttpURLConnection 学习笔记 - 百度内容审核-图像
HttpURLConnection 学习笔记 - 百度内容审核-图像
HttpURLConnection.getInputStream 很慢