java網(wǎng)絡(luò)請求代碼

記錄一個(gè)Java網(wǎng)絡(luò)請求的工具類,post是以json的形式提交請求的

public class HttpRequest {
/**
 * 向指定URL發(fā)送GET方法的請求
 * 
 * @param url
 *            發(fā)送請求的URL
 * @param param
 *            請求參數(shù),請求參數(shù)應(yīng)該是 name1=value1&name2=value2 的形式。
 * @return URL 所代表遠(yuǎn)程資源的響應(yīng)結(jié)果
 */
public static String sendGet(String url, String param) {
    String result = "";
    BufferedReader in = null;
    try {
        String urlNameString = url + "?" + param;
        URL realUrl = new URL(urlNameString);
        // 打開和URL之間的連接
        URLConnection connection = realUrl.openConnection();
        // 設(shè)置通用的請求屬性
        connection.setRequestProperty("accept", "*/*");
        connection.setRequestProperty("connection", "Keep-Alive");
        connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
        // 建立實(shí)際的連接
        connection.connect();
        // 獲取所有響應(yīng)頭字段
        Map<String, List<String>> map = connection.getHeaderFields();
        // 遍歷所有的響應(yīng)頭字段
        for (String key : map.keySet()) {
            System.out.println(key + "--->" + map.get(key));
        }
        // 定義 BufferedReader輸入流來讀取URL的響應(yīng)
        in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String line;
        while ((line = in.readLine()) != null) {
            result += line;
        }
    } catch (Exception e) {
        System.out.println("發(fā)送GET請求出現(xiàn)異常!" + e);
        e.printStackTrace();
    }
    // 使用finally塊來關(guān)閉輸入流
    finally {
        try {
            if (in != null) {
                in.close();
            }
        } catch (Exception e2) {
            e2.printStackTrace();
        }
    }
    return result;
}

/**
 * 向指定 URL 發(fā)送POST方法的請求
 * 
 * @param url
 *            發(fā)送請求的 URL
 * @param param
 *            請求參數(shù),請求參數(shù)應(yīng)該是 name1=value1&name2=value2 的形式。
 * @return 所代表遠(yuǎn)程資源的響應(yīng)結(jié)果
 */
public static String sendPost(String url, String param) {
    PrintWriter out = null;
    BufferedReader in = null;
    String result = "";
    try {
        URL realUrl = new URL(url);
        // 打開和URL之間的連接
        URLConnection conn = realUrl.openConnection();
        // 設(shè)置通用的請求屬性
        conn.setRequestProperty("accept", "*/*");
        conn.setRequestProperty("connection", "Keep-Alive");
        conn.setRequestProperty("Charset", "UTF-8");
        conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
        conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

        // 發(fā)送POST請求必須設(shè)置如下兩行
        conn.setDoOutput(true);
        conn.setDoInput(true);
        // 獲取URLConnection對(duì)象對(duì)應(yīng)的輸出流
        out = new PrintWriter(conn.getOutputStream());
        // 發(fā)送請求參數(shù)
        out.print(param);
        // flush輸出流的緩沖
        out.flush();
        // 定義BufferedReader輸入流來讀取URL的響應(yīng)
        in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line = in.readLine()) != null) {
            result += line;
        }
    } catch (Exception e) {
        System.out.println("發(fā)送 POST 請求出現(xiàn)異常!" + e);
        e.printStackTrace();
    }
    // 使用finally塊來關(guān)閉輸出流、輸入流
    finally {
        try {
            if (out != null) {
                out.close();
            }
            if (in != null) {
                in.close();
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    return result;
}
}

里面包含了get 和post的方法
可以直接用main方法使用

public class TestImg {
    public static void main(String[] args) {
        Root root=new Root();
        root.setFilename("C:\\word\\test.pptx");
        root.setFiletype("pptx");
        Gson gson=new Gson();
        
        String json = gson.toJson(root);
        //String sendPost = HttpRequest.sendPost("http://10.78.56.81:8080/wordimg/wordFile", json);
        String sendPost = HttpRequest.sendPost("http://localhost:8080/wordimg/wordFile", json);
        System.out.println(sendPost);
    }
  }

上面是調(diào)用了一個(gè)本地文檔,參數(shù)要轉(zhuǎn)為json

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,634評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,740評(píng)論 18 399
  • 想要成就一番事業(yè),必定要有大格局。如何提升格局? 一、修煉自身—抓大放小 1.放大自我信念 人之所以能行、能成功,...
    idoixiu閱讀 799評(píng)論 3 2
  • 突然之間,我的奶奶過世了。 盡管對(duì)于九十八歲的老人家來說,生死是一件非常自然、不會(huì)讓人覺得意外的事情。然而對(duì)我來說...
    植被哥閱讀 1,406評(píng)論 3 5
  • 已是秋天最后一個(gè)節(jié)氣——霜降。 一夜之間,石榴樹,葡萄樹,無花果的葉子凋零的已剩無幾。還沒來得及成熟的兩個(gè)石榴,這...
    下輩子我愿做小草閱讀 889評(píng)論 0 2

友情鏈接更多精彩內(nèi)容