问题:通过HttpUrlConnection获取网站数据 ,

描述:参照书本的例程.xml和.java如下,并已在AndroidManifest.xml文件中添加了

但模拟运行程序时,点击button并无数据返回显示,想请教下应该如何解决?

.java文件

package com.example.onenet_block_get;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.util.Log;

import android.view.Menu;

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.MalformedURLException;

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.testget);

Button sendRequest = (Button) findViewById(R.id.send_request);

responseText = (TextView) findViewById(R.id.reponse_text);

sendRequest.setOnClickListener(this);

}

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 = new URL("http://www.baidu.com");

connection = (HttpURLConnection) url.openConnection();

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() {

responseText.setText(response);

}

});

}

}

.xml文件

android:orientation="vertical" android:layout_width="match_parent"

android:layout_height="match_parent">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/send_request"

android:text="Send Request"/>

android:layout_width="match_parent"

android:layout_height="match_parent">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/reponse_text"/>

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐