zoukankan      html  css  js  c++  java
  • android-网络请求

    java.net

    Get请求

     

    try {
                URL url = new URL("");    
                URLConnection connection = url.openConnection();
                HttpURLConnection httpConnection = (HttpURLConnection)connection;
                httpConnection.setConnectTimeout(30 * 1000);
                httpConnection.connect();
    
                if (httpConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    //这里使用的byte[]就相当于iOS中的NSData
                    byte[] buffer = new byte[1024];
                    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
                    InputStream inStream = httpConnection.getInputStream();
                    int len = 0;
                    while ((len = inStream.read(buffer)) != -1) { 
                        //inputStream是写入了内存后的内容,比如从网络访问回来的结果或从硬盘中读取数据。outputStream是从内存中输出出去的内容,比如输出到网络或硬盘。
                        //这个while循环就是从网络中按字节为单位地将数据获取,inputStream的read是将网络获取下来的数据读到buffer并返回数据字节数。
                        //若果上次读入数据成功且是有数据返回,则继续申请获取数据,用outStream的write,并将上一次读入操作得到的字节数、缓存变量传入,让目标源知道这次该返回些什么数据。
                        outStream.write(buffer, 0, len);  
                    }  
                    inStream.close();  
                    System.out.println(new String(outStream.toByteArray()));
                }
                httpConnection.disconnect();
            } catch (Exception e) {
                System.out.println("get"+e.getLocalizedMessage());
            }

     

    Post请求

    try {
                String path = "https://reg.163.com/logins.jsp";
                String params = "id=" + URLEncoder.encode("helloworld", "UTF-8")
                        + "&pwd=" + URLEncoder.encode("android", "UTF-8");
                // 请求的参数转换为byte数组
                byte[] postData = params.getBytes();
                
                URL url = new URL(path);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setConnectTimeout(30 * 1000);
                // Post请求必须设置允许输出
                urlConnection.setDoOutput(true);
                urlConnection.setUseCaches(false);
                urlConnection.setRequestMethod("POST");
                urlConnection.setInstanceFollowRedirects(true);
                urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencode");
                urlConnection.connect();
                
                //发送请求参数
                DataOutputStream dos = new DataOutputStream(urlConnection.getOutputStream());
                dos.write(postData);
                dos.flush();
                dos.close();
                
                if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    //xml解析(DOM)
                    InputStream in = urlConnection.getInputStream();
                    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                    DocumentBuilder db = dbf.newDocumentBuilder();
                    Document dom = db.parse(in);
                    Element docEle = (Element) dom.getDocumentElement();
                    NodeList nl = docEle.getElementsByTagName("input");
                    if (nl != null && nl.getLength()>0) {
                        for (int i = 0; i < nl.getLength(); i++) {
                            Element input = (Element) nl.item(i);
                            String name = input.getAttribute("name");
                            System.out.println("XML parse excice result : 163's input feild name");
                        }
                    } 
                    
                    //普通字节流获取
    //                ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    //                InputStream inStream = urlConnection.getInputStream();
    //                int len = 0;
    //                byte[] buffer = new byte[1024];
    //                while ((len = inStream.read(buffer)) != -1) {  
    //                    outStream.write(buffer, 0, len);  
    //                }  
    //                inStream.close();  
    //                System.out.println(new String(outStream.toByteArray()));
                    
                }
            } catch (Exception e) {
                System.out.println("post"+e.getLocalizedMessage());
            }

    org.apache.http

    Get请求

    try {
                String path = "";
                HttpGet httpGet = new HttpGet(path);
                HttpClient httpClient = new DefaultHttpClient();
                HttpResponse httpResp = httpClient.execute(httpGet);
                if (httpResp.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK) {
                    String result = EntityUtils.toString(httpResp.getEntity(),"UTF-8");
                    //JSON解析
                    String message = new JSONObject(result).getString("message");
                    System.out.println("HttpGet "+"message:"+message);
                }
            } catch (Exception e) {
                System.out.println("HttpGet "+e.getLocalizedMessage());
            }

    Post请求

    try {
                String path = "";
                HttpPost httpPost = new HttpPost(path);
                // Post参数
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("id", "helloworld"));
                params.add(new BasicNameValuePair("pwd", "android"));
                // 设置字符集
                HttpEntity entity = new UrlEncodedFormEntity(params, HTTP.UTF_8);
                // 设置参数实体
                httpPost.setEntity(entity);
                HttpClient httpClient = new DefaultHttpClient();
                HttpResponse httpResp = httpClient.execute(httpPost);
                if (httpResp.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK) {
                    String result = EntityUtils.toString(httpResp.getEntity(), "UTF-8");
                }
            } catch (Exception e) {
                System.out.println("HttpPost "+e.getLocalizedMessage());
            }

     

  • 相关阅读:
    读书笔记——吴军《态度》
    JZYZOJ1237 教授的测试 dfs
    NOI1999 JZYZOJ1289 棋盘分割 dp 方差的数学结论
    [JZYZOJ 1288][洛谷 1005] NOIP2007 矩阵取数 dp 高精度
    POJ 3904 JZYZOJ 1202 Sky Code 莫比乌斯反演 组合数
    POJ2157 Check the difficulty of problems 概率DP
    HDU3853 LOOPS 期望DP 简单
    Codeforces 148D. Bag of mice 概率dp
    POJ3071 Football 概率DP 简单
    HDU4405 Aeroplane chess 飞行棋 期望dp 简单
  • 原文地址:https://www.cnblogs.com/mingfung-liu/p/4519625.html
Copyright © 2011-2022 走看看