zoukankan      html  css  js  c++  java
  • 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 = 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 = 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");
        }

    截图:

  • 相关阅读:
    bashrc的加载
    无奈卸载Clover 转投TotalCommand
    Hash Table Benchmarks
    linux下编译lua
    可变参数的传递问题
    vector 之 find 重载
    Shell统计报表表格生成
    Shell字符串使用十进制转换
    No module named BeautifulSoup
    Multi Thread.
  • 原文地址:https://www.cnblogs.com/xiaoxian1369/p/4101944.html
Copyright © 2011-2022 走看看