国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java后臺調用HttpURLConnection類模擬瀏覽器請求實例(可用于接口調用)

2019-11-26 15:23:08
字體:
來源:轉載
供稿:網友

一般在項目開發中難免遇到外部接口的調用,本文實例講述了java后臺調用HttpURLConnection類模擬瀏覽器請求的方法。可用于接口調用。分享給大家供大家參考。具體實現方法如下:

復制代碼 代碼如下:
package com.cplatform.movie.back.test;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class HttpURLConnectionTest {
    public static final String GET_URL = "http://112.4.27.9/mall-back/if_user/store_list?storeId=32";
    public static final String POST_URL = "http://112.4.27.9/mall-back/if_user/store_list";
   
    /**
     * 接口調用 GET
     */
    public static void httpURLConectionGET() {
        try {
            URL url = new URL(GET_URL);    // 把字符串轉換為URL請求地址
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 打開連接
            connection.connect();// 連接會話
            // 獲取輸入流
            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            StringBuilder sb = new StringBuilder();
            while ((line = br.readLine()) != null) {// 循環讀取流
                sb.append(line);
            }
            br.close();// 關閉流
            connection.disconnect();// 斷開連接
            System.out.println(sb.toString());
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("失敗!");
        }
    }
   
    /**
     * 接口調用  POST
     */
    public static void httpURLConnectionPOST () {
        try {
            URL url = new URL(POST_URL);
           
            // 將url 以 open方法返回的urlConnection  連接強轉為HttpURLConnection連接  (標識一個url所引用的遠程對象連接)
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 此時cnnection只是為一個連接對象,待連接中
           
            // 設置連接輸出流為true,默認false (post 請求是以流的方式隱式的傳遞參數)
            connection.setDoOutput(true);
           
            // 設置連接輸入流為true
            connection.setDoInput(true);
           
            // 設置請求方式為post
            connection.setRequestMethod("POST");
           
            // post請求緩存設為false
            connection.setUseCaches(false);
           
            // 設置該HttpURLConnection實例是否自動執行重定向
            connection.setInstanceFollowRedirects(true);
           
            // 設置請求頭里面的各個屬性 (以下為設置內容的類型,設置為經過urlEncoded編碼過的from參數)
            // application/x-javascript text/xml->xml數據 application/x-javascript->json對象 application/x-www-form-urlencoded->表單數據
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
           
            // 建立連接 (請求未開始,直到connection.getInputStream()方法調用時才發起,以上各個參數設置需在此方法之前進行)
            connection.connect();
           
            // 創建輸入輸出流,用于往連接里面輸出攜帶的參數,(輸出內容為?后面的內容)
            DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());
            String parm = "storeId=" + URLEncoder.encode("32", "utf-8"); //URLEncoder.encode()方法  為字符串進行編碼
           
            // 將參數輸出到連接
            dataout.writeBytes(parm);
           
            // 輸出完成后刷新并關閉流
            dataout.flush();
            dataout.close(); // 重要且易忽略步驟 (關閉流,切記!)
           
            System.out.println(connection.getResponseCode());
           
            // 連接發起請求,處理服務器響應  (從連接獲取到輸入流并包裝為bufferedReader)
            BufferedReader bf = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            StringBuilder sb = new StringBuilder(); // 用來存儲響應數據
           
            // 循環讀取流,若不到結尾處
            while ((line = bf.readLine()) != null) {
                sb.append(bf.readLine());
            }
            bf.close();    // 重要且易忽略步驟 (關閉流,切記!)
            connection.disconnect(); // 銷毀連接
            System.out.println(sb.toString());
   
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
   
    public static void main(String[] args) {
//        httpURLConectionGET();
        httpURLConnectionPOST();
    }
}

希望本文所述對大家的Java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 恩平市| 什邡市| 呼伦贝尔市| 广西| 平果县| 桦南县| 保山市| 陇南市| 夹江县| 洪雅县| 土默特左旗| 新晃| 弋阳县| 华亭县| 新建县| 宁乡县| 遂昌县| 青阳县| 松潘县| 黄浦区| 莱州市| 临江市| 舞阳县| 赞皇县| 峨山| 迁安市| 定结县| 香格里拉县| 五台县| 靖远县| 雷山县| 兴国县| 秭归县| 太仆寺旗| 隆回县| 临沂市| 八宿县| 子长县| 永丰县| 林州市| 连城县|