最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java網(wǎng)絡(luò)編程中向指定URL發(fā)送GET POST請(qǐng)求示例

 更新時(shí)間:2013年11月25日 15:38:04   作者:  
這篇文章主要介紹了java向指定URL發(fā)送GET POST請(qǐng)求示例,學(xué)習(xí)JAVA網(wǎng)絡(luò)編程一定會(huì)用到的,大家參考使用吧
復(fù)制代碼 代碼如下:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

public class HttpRequest {
    /**
     * 向指定URL發(fā)送GET方法的請(qǐng)求
     *
     * @param url
     *            發(fā)送請(qǐng)求的URL
     * @param param
     *            請(qǐng)求參數(shù),請(qǐng)求參數(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è)置通用的請(qǐng)求屬性
            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請(qǐng)求出現(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方法的請(qǐng)求
     *
     * @param url
     *            發(fā)送請(qǐng)求的 URL
     * @param param
     *            請(qǐng)求參數(shù),請(qǐng)求參數(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è)置通用的請(qǐng)求屬性
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent",
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 發(fā)送POST請(qǐng)求必須設(shè)置如下兩行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 獲取URLConnection對(duì)象對(duì)應(yīng)的輸出流
            out = new PrintWriter(conn.getOutputStream());
            // 發(fā)送請(qǐng)求參數(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 請(qǐng)求出現(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;
    }
}

相關(guān)文章

  • Java并發(fā)編程之性能、擴(kuò)展性和響應(yīng)

    Java并發(fā)編程之性能、擴(kuò)展性和響應(yīng)

    這篇文章主要介紹了Java并發(fā)編程之性能、擴(kuò)展性和響應(yīng),重點(diǎn)在于多線程應(yīng)用程序的性能問題,給性能和擴(kuò)展性下一個(gè)定義,然后再仔細(xì)學(xué)習(xí)一下Amdahl法則,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 三分鐘快速掌握J(rèn)ava中枚舉(enum)

    三分鐘快速掌握J(rèn)ava中枚舉(enum)

    enum的全稱為enumeration, 是 JDK 1.5中引入的新特性,存放在 java.lang包中。下面這篇文章是我在使用enum過程中的一些經(jīng)驗(yàn)和總結(jié),分享出來方便大家快速的掌握J(rèn)ava中枚舉(enum),有需要的朋友們下面跟著小編來一起看看吧。
    2016-12-12
  • 淺析關(guān)于java的序列化和反序列化

    淺析關(guān)于java的序列化和反序列化

    這篇文章主要介紹了淺析關(guān)于java的序列化和反序列化,所謂序列化,就是把要傳輸?shù)膶?duì)象以及相關(guān)信息轉(zhuǎn)換成字節(jié)數(shù)組進(jìn)行存儲(chǔ)的過程,而反序列化就是將字節(jié)數(shù)組再轉(zhuǎn)回對(duì)象的過程,需要的朋友可以參考下
    2023-07-07
  • springboot根據(jù)實(shí)體類生成表的實(shí)現(xiàn)方法

    springboot根據(jù)實(shí)體類生成表的實(shí)現(xiàn)方法

    本文介紹了如何通過SpringBoot工程引入SpringDataJPA,并通過實(shí)體類自動(dòng)生成數(shù)據(jù)庫表的過程,包括常見問題解決方法,感興趣的可以了解一下
    2024-09-09
  • 使用SpringBoot簡(jiǎn)單實(shí)現(xiàn)無感知的刷新 Token功能

    使用SpringBoot簡(jiǎn)單實(shí)現(xiàn)無感知的刷新 Token功能

    實(shí)現(xiàn)無感知的刷新 Token 是一種提升用戶體驗(yàn)的常用技術(shù),可以在用戶使用應(yīng)用時(shí)自動(dòng)更新 Token,無需用戶手動(dòng)干預(yù),這種技術(shù)在需要長(zhǎng)時(shí)間保持用戶登錄狀態(tài)的應(yīng)用中非常有用,以下是使用Spring Boot實(shí)現(xiàn)無感知刷新Token的一個(gè)場(chǎng)景案例和相應(yīng)的示例代碼
    2024-09-09
  • Spring Boot 集成Dubbo框架實(shí)例

    Spring Boot 集成Dubbo框架實(shí)例

    本篇文章主要介紹了Spring Boot 集成Dubbo框架實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Java RabbitMQ高級(jí)特性詳細(xì)分析

    Java RabbitMQ高級(jí)特性詳細(xì)分析

    為了保證消息的可靠性傳輸,包括投遞消息的生產(chǎn)方能投遞成功,和消息消費(fèi)的消費(fèi)方正確消費(fèi),RabbitMQ 提供了兩個(gè)確認(rèn)機(jī)制,由于消息按照流通的順序從左到右,因此為保證可靠性,MQ必須對(duì) Producer進(jìn)行確認(rèn),Consumer 必須對(duì) MQ 進(jìn)行確認(rèn)
    2022-08-08
  • elasticsearch索引index之Mapping實(shí)現(xiàn)關(guān)系結(jié)構(gòu)示例

    elasticsearch索引index之Mapping實(shí)現(xiàn)關(guān)系結(jié)構(gòu)示例

    這篇文章主要介紹了elasticsearch索引index之Mapping實(shí)現(xiàn)關(guān)系結(jié)構(gòu)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • jar命令修改jar包中的application.yml配置文件

    jar命令修改jar包中的application.yml配置文件

    本文主要介紹了jar命令修改jar包中的application.yml配置文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • RabbitMQ消息隊(duì)列的目錄結(jié)構(gòu)

    RabbitMQ消息隊(duì)列的目錄結(jié)構(gòu)

    這篇文章主要介紹了RabbitMQ消息隊(duì)列的目錄結(jié)構(gòu),RabbitMQ?屬于消息中間件,主要用于組件之間的解耦,消息的發(fā)送者無需知道消息使用者的存在,反之亦然,那么用了那么久RabbitMQ,其目錄結(jié)構(gòu)是怎樣的呢,讓我們一起來看一下吧
    2023-08-08

最新評(píng)論

汶上县| 柳河县| 碌曲县| 德州市| 濮阳市| 防城港市| 武邑县| 贵南县| 左云县| 兴业县| 南宁市| 宝鸡市| 铜山县| 永德县| 麻江县| 维西| 彭山县| 泾阳县| 巴林左旗| 凤城市| 西畴县| 仲巴县| 临汾市| 景德镇市| 沁水县| 辽阳市| 平南县| 南城县| 惠水县| 清远市| 淳安县| 漳浦县| 和林格尔县| 莒南县| 福泉市| 大同县| 阳江市| 任丘市| 莱州市| 广西| 当雄县|