zoukankan      html  css  js  c++  java
  • Android HttpURLConnection 与 HttpClient

    package com.example.phonedemo;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.HttpStatus;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    
    import com.example.phonedemo.util.Utils;
    
    public class HttpDemo extends Activity {
    
        private static final String PATH = "http://192.168.1.121:8080/wwwroot/android/login.jsp";
        private static final String NAME = "qinxijuan";
        private static final String PASSWORD = "123456";
    
        private Button getConnBut = null;
        private Button postConnBut = null;
        private Button getClientBut = null;
        private Button postClientBut = null;
        private TextView text = null;
        private LinearLayout layout = null;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
    
            this.layout = new LinearLayout(this);
            this.layout.setOrientation(LinearLayout.VERTICAL);
    
            this.getConnBut = new Button(this);
            this.getConnBut.setText("HttpURLConnection GET请求");
            this.getConnBut.setOnClickListener(new ConnGet());
            this.layout.addView(this.getConnBut, Utils.wrap_v);
    
            this.postConnBut = new Button(this);
            this.postConnBut.setText("HttpURLConnection post请求");
            this.postConnBut.setOnClickListener(new ConnPost());
            this.layout.addView(this.postConnBut, Utils.wrap_v);
    
            this.getClientBut = new Button(this);
            this.getClientBut.setText("HttpClient post请求");
            this.getClientBut.setOnClickListener(new ClientGet());
            this.layout.addView(this.getClientBut, Utils.wrap_v);
    
            this.postClientBut = new Button(this);
            this.postClientBut.setText("HttpClient post请求");
            this.postClientBut.setOnClickListener(new ClientPost());
            this.layout.addView(this.postClientBut, Utils.wrap_v);
    
            this.text = new TextView(this);
            this.text.setText("等待取得链接");
            this.layout.addView(this.text, Utils.wrap_h);
    
            super.addContentView(layout, Utils.match);
    
        }
    
        class ConnGet implements OnClickListener {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String path = PATH + "?" + "name=" + NAME + "&password=" + PASSWORD;
                URL url = null;
                HttpURLConnection conn = null;
                BufferedReader bfr = null;
                StringBuffer result = new StringBuffer();
                try {
                    url = new URL(path);
                    conn = (HttpURLConnection) url.openConnection();
                    bfr = new BufferedReader(new InputStreamReader(
                            conn.getInputStream()));
                    String input;
                    while ((input = bfr.readLine()) != null) {
                        result.append(input);
                    }
                    conn.disconnect();
                    System.out.println("result: " + result.toString());
                    if (Boolean.parseBoolean(result.toString().trim())) {
                        HttpDemo.this.text
                                .setText("HttpURLConnection get方式已经成功获取数据。");
                    } else {
                        HttpDemo.this.text.setText("HttpURLConnection get方式获取数据失败");
                    }
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
    
        }
    
        class ConnPost implements OnClickListener {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                URL url = null;
                HttpURLConnection conn = null;
                BufferedReader bfr = null;
                StringBuffer result = new StringBuffer();
                try {
                    url = new URL(HttpDemo.this.PATH);
                    conn = (HttpURLConnection) url.openConnection();
                    // HttpURLConnection 默认是get请求方式,所以要设置成 true
                    conn.setRequestMethod("POST");
                    // 设置需要输入参数
                    conn.setDoOutput(true);
                    String params = "name=" + NAME + "&password=" + PASSWORD;
                    // 设置参数
                    conn.getOutputStream().write(params.getBytes());
                    // 读取返回流
                    bfr = new BufferedReader(new InputStreamReader(
                            conn.getInputStream()));
                    String input = null;
                    while ((input = bfr.readLine()) != null) {
                        result.append(input);
                    }
                    if (Boolean.parseBoolean(result.toString().trim())) {
                        HttpDemo.this.text
                                .setText("HttpURLConnection Post方式已经成功获取数据。");
                    } else {
                        HttpDemo.this.text
                                .setText("HttpURLConnection post方式获取数据失败");
                    }
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
    
        }
    
        class ClientGet implements OnClickListener {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String path = PATH + "?" + "name=" + NAME + "&password=" + PASSWORD;
                HttpGet request = new HttpGet(path);
                HttpClient httpClient = new DefaultHttpClient();
                HttpResponse response = null;
                String result = null;
                try {
                    response = httpClient.execute(request);
                    if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                        result = EntityUtils.toString(response.getEntity());
                    }
                    if (Boolean.parseBoolean(result.trim())) {
                        HttpDemo.this.text.setText("HttpClient GET方式已经成功获取数据。");
                    } else {
                        HttpDemo.this.text.setText("HttpClient GET方式获取数据失败");
                    }
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
    
        }
    
        class ClientPost implements OnClickListener {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                HttpPost request = new HttpPost(PATH);
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("name", NAME));
                params.add(new BasicNameValuePair("password", PASSWORD));
                String result = null;
                try {
                    HttpEntity entity = new UrlEncodedFormEntity(params, "UTF-8");
                    request.setEntity(entity);
                    HttpClient client = new DefaultHttpClient();
                    HttpResponse response = client.execute(request);
                    if (response.getStatusLine().getStatusCode() == 200){
                        result = EntityUtils.toString(response.getEntity());
                    }
                    if (Boolean.parseBoolean(result.trim())){
                        HttpDemo.this.text.setText("HttpClient POST方式已经成功获取数据。");
                    } else {
                        HttpDemo.this.text.setText("HttpClient POST方式获取数据失败");
                    }
                } catch (UnsupportedEncodingException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
    
        }
    
    }
  • 相关阅读:
    常规渗透:没遇到过的anquan狗
    SQLi-db 批量注入工具+教程
    国外整理的一套在线渗透测试资源合集
    重大漏洞!PHP multipart/form-data头部解析远程拒绝服务漏洞
    MS15-051 修正版Exploit(Webshell可用)
    网站渗透常用到的Python小脚本
    项目<<魔兽登录系统>>
    第七章:存储过程
    第六章:事务,视图和索引
    SQL高级查询:嵌套和分页
  • 原文地址:https://www.cnblogs.com/waddell/p/3394685.html
Copyright © 2011-2022 走看看