1.作用:发送http请求
2.用法
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(new View.OnClickListener(){ @Override public void onClick(View v) { if(v.getId() == R.id.send_request){ sendRequestWithHttpHttpURLConnection(); } } }); }
private void sendRequestWithHttpHttpURLConnection() { new Thread(new Runnable() {//开启一个子线程 @Override public void run() { HttpURLConnection connection = null; BufferedReader reader = null; try{ URL url = new URL("http://192.168.135.2:10000/student.xml");//要请求的页面 connection = (HttpURLConnection)url.openConnection(); connection.setRequestMethod("GET");//设置http请求所需要的方法,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() {//返回主线程,因为安卓不允许在子线程中进行ui操作 @Override public void run() { responseText.setText(response); } }); }