我想要抓取百度頁面的資料,用的get,下面是方法,也加了權限<uses-permission android:name="android.permission.INTERNET"></uses-permission>,可是運行后獲得不了資訊,什么也沒有,這是為什么啊,對于http的get好苦惱啊,有人能解答一下嗎


package com.example.testget;
import android.annotation.SuppressLint;
import android.os.Handler;
import android.os.Message;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
public static final int SHOW_RESPONSE=0;//用于更新操作
private Button sendRequest;
private TextView responseText;
@SuppressLint("HandlerLeak")
//用于處理和發送訊息的Hander
private Handler handler=new Handler(){
public void handleMessage(Message msg){
//如果返現msg.what=SHOW_RESPONSE,則進行制定操作,如想進行其他操作,則在子執行緒里將SHOW_RESPONSE改變
switch (msg.what){
case SHOW_RESPONSE:
String response=(String)msg.obj;
//進行UI操作,將結果顯示到界面上
responseText.setText(response);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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;
try{
URL url=new URL("https://www.baidu.com");
connection=(HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(8000);
connection.setReadTimeout(8000);
InputStream in=connection.getInputStream();
//下面對獲取到的輸入流進行讀取
BufferedReader bufr=new BufferedReader(new InputStreamReader(in));
StringBuilder response=new StringBuilder();
String line=null;
while((line=bufr.readLine())!=null){
response.append(line);
}
Message message=new Message();
message.what=SHOW_RESPONSE;
//將服務器回傳的資料存放到Message中
message.obj=response.toString();
handler.sendMessage(message);
}catch(Exception e){
e.printStackTrace();
}finally {
if(connection!=null){
connection.disconnect();
}
}
}
}).start();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/225157.html
標籤:Android
下一篇:求大神相助!!Xcode 12
