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());
            }

     

  • 相关阅读:
    【每日一具3】推荐一个4K、蓝光、3D高清影视下载站,影视资源丰富 发烧友必备
    Python对程序中异常进行处理
    通过一个简单的例子,了解 Cypress 的运行原理
    ABAP 标准培训教程 BC400 学习教程之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍
    如何安装最新版本的 SAP ABAP Development Tool ( ADT ) 2021年度更新
    ABAP R3 时代著名的 SFLIGHT 航班模型测试数据,到了S/4HANA时代的进化版
    SAP Fiori Elements 应用的 i18n 语法使用方式
    SAP Fiori Elements List Report 里的表格类型(tableType)是如何决定出来的
    使用 XSLT 给 SAP PI 增加 CDATA
    SAP Fiori Elements 学习笔记
  • 原文地址:https://www.cnblogs.com/mingfung-liu/p/4519625.html
Copyright © 2011-2022 走看看