1.封裝http的通路接口
public StringBuilder urlEvent() throws IOException {
url = new URL("https://www.baidu.com/");
conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(2000);
conn.setReadTimeout(2000);
InputStream ins = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine())!= null)
{
response.append(line);
}
return response;
}
2.使用線程調用該接口,并通過Handler的方式異步傳遞資料到線程
public void httpThread()
{
new Thread(new Runnable() {
@Override
public void run() {
try {
StringBuilder builder = urlEvent();
Message msg = new Message();
msg.what = 1;
Bundle data = new Bundle();
data.putString("data", builder.toString());
msg.setData(data);
handler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
3.建立handler對象對異步資料進行操作
private Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
switch (msg.what)
{
case 1:
Bundle data = msg.getData();
console.setText(data.getString("data"));
// console.setText("接受到消息");
break;
default:
break;
}
}
};
4.完整代碼://僅僅隻限于參考,沒有配上laout的代碼,然後,最後你需要添權重限
<uses-permission android:name="android.permission.INTERNET"/>
package com.system.ad;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class MainActivity extends ADActivityBase {
public EditText userAccInput;
public EditText userPwdInput;
public TextView console;
public Button loginBtn;
public Button registerBtn;
public String a = null;
URL url = null;
HttpURLConnection conn =null;
public void httpThread()
{
new Thread(new Runnable() {
@Override
public void run() {
try {
StringBuilder builder = urlEvent();
Message msg = new Message();
msg.what = 1;
Bundle data = new Bundle();
data.putString("data", builder.toString());
msg.setData(data);
handler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
private Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
switch (msg.what)
{
case 1:
Bundle data = msg.getData();
console.setText(data.getString("data"));
// console.setText("接受到消息");
break;
default:
break;
}
}
};
public StringBuilder urlEvent() throws IOException {
url = new URL("https://www.baidu.com/");
conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(8000);
conn.setReadTimeout(8000);
InputStream ins = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine())!= null)
{
response.append(line);
}
return response;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userAccInput = findViewById(R.id.userAccInput);
userPwdInput = findViewById(R.id.userPwdInput);
loginBtn = (Button)findViewById(R.id.loginBtn);
registerBtn = findViewById(R.id.registerBtn);
console = findViewById(R.id.console);
Toast.makeText(MainActivity.this,"123",Toast.LENGTH_SHORT);
loginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
httpThread();
console.setText("ffffffffffff");
log(userAccInput.getText().toString());
}
});
}
}