首页 > 代码库 > Android中使用HTTP和HttpClient进行通信

Android中使用HTTP和HttpClient进行通信

/**     * 使用HTTP的Get方式进行数据请求     */    protected void httpGet() {        /**         * 进行异步请求         */        new AsyncTask<String, Void, Void>() {            @Override            protected Void doInBackground(String... params) {                System.err.println("httpGet start");                // 在此方法中只能进行数据处理,不能与进行UI交互                try {                    URL url = new URL(params[0]);                    URLConnection connection = url.openConnection();                    InputStream is = connection.getInputStream();                    // 使用UTF-8的方式进行数据流转化,从字节流转化为字符流                    InputStreamReader isr = new InputStreamReader(is, "UTF-8");                    BufferedReader br = new BufferedReader(isr);                    String line = null;                    while ((line = br.readLine()) != null) {                        System.err.println(line);                    }                    // 关闭数据流                    br.close();                    isr.close();                    is.close();                } catch (MalformedURLException e) {                    e.printStackTrace();                } catch (IOException e) {                    e.printStackTrace();                }                return null;            }        }.execute("http://fanyi.youdao.com/openapi.do?keyfrom=***&key=***&type=data&doctype=json&version=1.1&q=good");    }    /**     * 使用HTTP的Post方式进行数据请求     */    protected void httpPost() {        /**         * 进行异步请求         */        new AsyncTask<String, Void, Void>() {            @Override            protected Void doInBackground(String... params) {                System.err.println("httpPost start");                // 在此方法中只能进行数据处理,不能与进行UI交互                try {                    URL url = new URL(params[0]);                    HttpURLConnection connection = (HttpURLConnection) url                            .openConnection();                    // 设置请求方式以及设置参数                    // 设置是否向HttpURLConnection对象输出                    connection.setDoOutput(true);                    // 设置请求方式                    connection.setRequestMethod("POST");                    // 设置参数                    OutputStream os = connection.getOutputStream();                    OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");                    BufferedWriter bw = new BufferedWriter(osw);                    bw.write(params[1]);                    bw.flush();                    InputStream is = connection.getInputStream();                    // 使用UTF-8的方式进行数据流转化,从字节流转化为字符流                    InputStreamReader isr = new InputStreamReader(is, "UTF-8");                    BufferedReader br = new BufferedReader(isr);                    String line = null;                    while ((line = br.readLine()) != null) {                        System.err.println(line);                    }                    // 关闭数据流                    br.close();                    isr.close();                    is.close();                } catch (MalformedURLException e) {                    e.printStackTrace();                } catch (IOException e) {                    e.printStackTrace();                }                return null;            }        }.execute("http://fanyi.youdao.com/openapi.do",                "keyfrom=***&key=***&type=data&doctype=json&version=1.1&q=good");    }    private HttpClient httpClient;    /**     * 使用HttpClient进行Get请求     */    protected void httpClientGet() {        new AsyncTask<String, Void, Void>() {            @Override            protected Void doInBackground(String... params) {                System.err.println("httpClientGet start");                String urlString = params[0];                HttpGet httpGet = new HttpGet(urlString);                try {                    // 发送请求                    HttpResponse response = httpClient.execute(httpGet);                    // 获取返回内容                    String value =http://www.mamicode.com/ EntityUtils.toString(response.getEntity());                    System.err.println(value);                } catch (ClientProtocolException e) {                    e.printStackTrace();                } catch (IOException e) {                    e.printStackTrace();                }                return null;            }        }.execute("http://fanyi.youdao.com/openapi.do?keyfrom=***&key=***&type=data&doctype=json&version=1.1&q=good");    }    /**     * 使用HttpClient进行Post请求     */    protected void httpClientPost() {        new AsyncTask<String, Void, Void>() {            @Override            protected Void doInBackground(String... params) {                System.err.println("httpClientPost start");                String urlString = params[0];                HttpPost httpPost = new HttpPost(urlString);                try {                    // 设置参数                    String[] paramsArr = params[1].split("&");                    int len = paramsArr.length;                    List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>(                            len);                    BasicNameValuePair pair = null;                    for (int i = 0; i < len; i++) {                        String[] paramArr = paramsArr[i].split("=");                        pair = new BasicNameValuePair(paramArr[0], paramArr[1]);                        list.add(pair);                    }                    httpPost.setEntity(new UrlEncodedFormEntity(list));                } catch (UnsupportedEncodingException e1) {                    e1.printStackTrace();                }                try {                    // 发送请求                    HttpResponse response = httpClient.execute(httpPost);                    // 获取返回内容                    String value =http://www.mamicode.com/ EntityUtils.toString(response.getEntity());                    System.err.println(value);                } catch (ClientProtocolException e) {                    e.printStackTrace();                } catch (IOException e) {                    e.printStackTrace();                }                return null;            }        }.execute("http://fanyi.youdao.com/openapi.do",                "keyfrom=***&key=***&type=data&doctype=json&version=1.1&q=good");    }

截图:

 

 

 

 

 

 

Android中使用HTTP和HttpClient进行通信