同一個tomcat 兩個項目 互相訪問接口方法


package com.qif.xdqdm.util;

import com.alibaba.fastjson.JSONObject;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class interfaceUtil {

    /**
     * 調用對方接口方法
     * @param path 對方或第三方提供的路徑
     * @param data 向對方或第三方發送的數據,大多數情況下給對方發送JSON數據讓對方解析
     */
    public static JSONObject httpInterfaceUtil(String path, String data) {
        try {
            URL url = new URL(path);

            //打開和url之間的連接
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            PrintWriter out = null;

            /**設置URLConnection的參數和普通的請求屬性****start***/

            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");

            /**設置URLConnection的參數和普通的請求屬性****end***/

            //設置是否向httpUrlConnection輸出,設置是否從httpUrlConnection讀入,此外發送post請求必須設置這兩個
            //最常用的Http請求無非是get和post,get請求可以獲取靜態頁面,也可以把參數放在URL字串后面,傳遞給servlet,
            //post與get的 不同之處在於post的參數不是放在URL字串里面,而是放在http請求的正文內。
            conn.setDoOutput(true);
            conn.setDoInput(true);

            conn.setRequestMethod("POST");//GET和POST必須全大寫
            /**GET方法請求*****start*/
            /**
             * 如果只是發送GET方式請求,使用connet方法建立和遠程資源之間的實際連接即可;
             * 如果發送POST方式的請求,需要獲取URLConnection實例對應的輸出流來發送請求參數。
             * */
            conn.connect();

            /**GET方法請求*****end*/

            /***POST方法請求****start*/

            //獲取URLConnection對象對應的輸出流 (防止中文傳過去亂碼)
            out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"utf-8"));

            out.print(data);//發送請求參數即數據

            out.flush();//緩沖數據
            /***POST方法請求****end*/

            //獲取URLConnection對象對應的輸入流
            InputStream is = conn.getInputStream();
            //構造一個字符流緩存
            BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
            StringBuffer txt = new StringBuffer();
            String str = "";
            while ((str = br.readLine()) != null) {
                str=new String(str.getBytes());//解決中文亂碼問題
                System.out.println(str);
                txt.append(str);
            }
            //關閉流
            is.close();
            //斷開連接,最好寫上,disconnect是在底層tcp socket鏈接空閑時才切斷。如果正在被其他線程使用就不切斷。
            //固定多線程的話,如果不disconnect,鏈接會增多,直到收發不出信息。寫上disconnect后正常一些。
            conn.disconnect();
            System.out.println("完整結束");
            return JSONObject.parseObject(txt.toString());
        } catch (Exception e) {
            e.printStackTrace();
            return  null;
        }
    }

    public static void main(String[] args) {

        httpInterfaceUtil("http://172.26.1.33:8080/xdq/sysTableInfo/find_tableIdAndEquipmentID", "tableName=singleterm");//get請求

        /*interfaceUtil("http://172.83.28.221:7001/NSRTRegistration/test/add.do",
             "id=8888888&name=99999999");*///post請求
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM