package com.mycompany.networktest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class MainActivity extends AppCompatActivity implements View.OnClickListener { TextView responseText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button sendRequest = (Button) findViewById(R.id.send_request); responseText = (TextView) findViewById(R.id.response_text); sendRequest.setOnClickListener(this); } @Override public void onClick(View v) { if (v.getId() == R.id.send_request) { sendRequestWithHttpURLConnection(); } } private void sendRequestWithHttpURLConnection () { // 开启线程发起网络请求 new Thread(new Runnable() { @Override public void run() { HttpURLConnection connection = null; BufferedReader reader = null; try { // 新建url对象并传入目标网络地址 URL url = new URL("https://www.baidu.com"); connection = (HttpURLConnection) url.openConnection(); // HTTP请求方法 connection.setRequestMethod("GET"); // 设置连接超时,读取超时的毫秒数 connection.setConnectTimeout(8000); connection.setReadTimeout(8000); // 获取到服务器返回的输入流,对输入流进行读取 InputStream in = connection.getInputStream(); // 读取获取到的输入流 reader = new BufferedReader(new InputStreamReader(in)); StringBuilder response = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { response.append(line); } showResponse(response.toString()); } catch (Exception e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } if (connection != null) { // 关闭连接 connection.disconnect(); } } } }).start(); } private void showResponse (final String response) { runOnUiThread(new Runnable() { @Override public void run() { // 在这里进行UI操作,将子线程中的结果显示到页面上 responseText.setText(response); } }); } }
Android---HttpURLConnection
最新推荐文章于 2025-03-02 02:13:18 发布