色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Java編程:發送HTTP請求到服務器

如意 ? 來源:百家號 ? 作者: 米粒教育 ? 2020-07-01 09:59 ? 次閱讀

Java程序需要向服務器發送請求或讀取服務器數據時,使用URLConnection類是比較好的選擇。URLConnection類封裝了與服務器互動操作的方法,通過它可以建立與服務器的遠程連接,檢查服務器資源的屬性,向服務器發送請求并接收服務器返回的數據。

Java編程:發送HTTP請求到服務器

URLConnection類是一個抽象類,它不能直接實例化為對象,但URL實例對象可以返回一個URLConnection類的子類對象。返回的子類對象與URL打開的網絡資源采用的協議有關。如果是HTTP協議,URL實例對象會返回HttpURLConnection對象。如果是FTP協議,URL實例對象會返回FtpURLConnection對象。

URLConnection類常用方法說明如下:

void connect()

該方法用于與遠程資源建立連接。如果尚未建立此連接,則打開指向此URL引用的資源鏈接。如果在連接已打開時調用connect方法(由值為true的connected字段指示),則忽略該調用。

void setRequestProperty(String key, String value)

該方法用于設置網絡資源請求屬性。Key參數為已知請求的關鍵字(例如,“Accept”),value是與key關聯的值。

void setReadTimeout(int timeout)

該方法用于設置讀取網絡資源數據超時時間(以毫秒為單位)。

void setConnectTimeout(int timeout)

該方法用于設置連接網絡資源的超時時間(以毫秒為單位)

InputStream getInputStream()

該方法用于返回從這個打開的連接讀取的輸入流。

HttpURLConnection類常用方法說明如下:

int getResponseCode()

該方法從HTTP響應消息獲取狀態代碼。返回200表示請求響應成功,其它值表示請求響應失敗。

void setRequestMethod(String method)

該方法設置HTTP請求方法之一:GET/POST/HEAD/OPTIONS/PUT/DELETE/TRACE。默認是GET。

案例1:建立URLConnectionTest類,連接遠程服務器,向服務器發送服務請求,并接收服務器的請求響應數據。

該遠程服務提供求兩數和服務,客戶端向該服務發送服務請求,并向該服務提交兩個待求和的整數,該服務返回求和結果。

在ip包下新建URLConnectionTest類。代碼如下:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

public class URLConnectionTest {

public static void main(String[] args) {

HttpURLConnection connection = null;

InputStream stream = null;

BufferedReader reader = null;

String server = “url&opone=30&optwo=60”;

try {

// 實例化URL對象

URL url = new URL(server);

// 通過URL對象打開一個連接,顯示轉換為httpURLConnection類

connection = (HttpURLConnection) url.openConnection();

// 設置連接方式:get

connection.setRequestMethod(“GET”);

// 設置連接遠程服務的超時時間:15000毫秒

connection.setConnectTimeout(15000);

// 設置讀取遠程服務返回的數據時間:60000毫秒

connection.setReadTimeout(60000);

// 建立連接,發送請求

connection.connect();

// 通過connection連接,獲取輸入流

if (connection.getResponseCode() == 200) {

// 從打開的連接獲取輸入流,接收返回數據

stream = connection.getInputStream();

// 實例化BufferedReader對象,并指定字符集

reader = new BufferedReader(new InputStreamReader(stream, “UTF-8”));

// 實例化字符串生成器

StringBuffer sbf = new StringBuffer();

String temp = null;

// 從輸入流讀取數據

while ((temp = reader.readLine()) != null) {

sbf.append(temp);

sbf.append(“\r\n”);

}

// 返回內容輸出到控制臺

System.out.println(“遠程服務返回的數據:” + sbf.toString());

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

// 關閉資源

if (null != reader) {

try {

reader.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (null != stream) {

try {

stream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

// 關閉遠程連接

connection.disconnect();

}

}

}

URLConnectionTest程序的主要功能是請求一個求兩數和的遠程服務,并向遠程服務提交待求和的兩個整數,遠程服務計算兩數的和,并將計算結果返回給程序,程序將計算結果輸出到控制臺。

程序使首先用URL對象定位和打開遠程服務,并應用URL對象的openConnection()方法獲取HttpURLConnection實例對象。然后應用HttpURLConnection實例對象分別設置遠程服務的連接超時時間、服務響應超時時間、讀取數據超時時間。再調用HttpURLConnection實例對象的connect()方法向遠程服務發送請求,并調用HttpURLConnection實例對象的getResponseCode()方法判斷遠程服務是否響應成功,如果返回值是200,說明服務器響應成功。最后讀取遠程服務返回的數據,并將讀取的數據輸出到控制臺。

程序執行結果如下圖所示:

Java編程:發送HTTP請求到服務器

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9425

    瀏覽量

    86491
  • JAVA
    +關注

    關注

    19

    文章

    2980

    瀏覽量

    105673
  • HTTP
    +關注

    關注

    0

    文章

    513

    瀏覽量

    31820
收藏 人收藏

    評論

    相關推薦

    HTTP協議的運作方式及請求/響應的步驟

    基于HTTP的客戶/服務器模式的信息交換過程它分四個過程建立連接、發送請求信息、發送響應信息、關閉連接。
    的頭像 發表于 02-01 11:02 ?1589次閱讀
    <b class='flag-5'>HTTP</b>協議的運作方式及<b class='flag-5'>請求</b>/響應的步驟

    HTTP客戶端請求服務器FIN在讀取所有數據之前

    1)PIC向http服務器發送請求2)服務器用數據響應,在PIC32堆棧緩沖區中PICThe數據的ack之后關閉連接,但在該堆棧迭代時關閉連
    發表于 09-23 07:01

    使用NodeMCU創建一個簡單的HTTP服務器

    ,但當我停止發送一兩分鐘的請求時,服務器將以某種方式停止運行 . 這意味著,當我重新加載頁面nodeMCU沒有收到任何數據(并且不能返回任何數據) .a=0function receive(conn,pa...
    發表于 11-01 06:03

    如何通過http請求將值發送服務器

    我正在使用 nodemcu 創建一個網絡服務器。我想通過 http 請求將值發送服務器。我已成功創建
    發表于 02-27 06:48

    ESP32 Web服務器可以向外部Rest API發起HTTP請求嗎?

    我想知道以下是否可行...... 1)作為網絡服務器運行的 ESP32 可以向外部 Rest API 發起/發出 HTTP 請求嗎?2) 我是否需要同時將其設置為服務器和客戶端,或者
    發表于 03-01 06:22

    GET如何才能請求多個服務器Masterslaves?

    大家好, \\*我是這個論壇的新人,所以我希望我 能在這里發帖另一個使用從我的主人(客戶端)從屬(服務器)的請求 GET但是我無法從我的主人建立多個
    發表于 05-30 09:03

    基于Java的游戲服務器開發技術體系詳解

    由 peter dong 于 星期五, 2018-06-15 11:19 發表 一、游戲服務器編程語言的選擇 所謂的游戲服務器編程語言其實有很多,基本上任何一種語言都可以作為游戲
    發表于 07-02 08:24 ?7367次閱讀

    Java程序設計教程之Java WEB服務器編程的詳細資料說明

    本文檔詳細介紹的是Java程序設計教程之Java WEB服務器編程的詳細資料說明主要內容包括了:1 Java Web
    發表于 02-22 10:28 ?11次下載
    <b class='flag-5'>Java</b>程序設計教程之<b class='flag-5'>Java</b> WEB<b class='flag-5'>服務器</b>端<b class='flag-5'>編程</b>的詳細資料說明

    單片機使用HTTP POST方式發送數據的資料和程序免費下載

    HTTP請求是依賴TCP的,也就是在單片機上面,我們一樣可以使用,無非就是先發送一個http請求頭,再
    發表于 07-18 17:38 ?38次下載
    單片機使用<b class='flag-5'>HTTP</b> POST方式<b class='flag-5'>發送</b>數據的資料和程序免費下載

    HTTP的曲折:網絡請求層層封裝和終端拆分

    服務器的地址進行查詢,域服務器將要查詢的域名的解析服務器地址返回給本地DNS,本地DNS去這里查詢就OK了。 瀏覽拿到服務器的IP地址后,
    發表于 05-07 16:42 ?1407次閱讀
    <b class='flag-5'>HTTP</b>的曲折:網絡<b class='flag-5'>請求</b><b class='flag-5'>到</b>層層封裝和終端拆分

    MCU沒有響應服務器請求,NodeMCU HTTP服務器停止響應

    ,但當我停止發送一兩分鐘的請求時,服務器將以某種方式停止運行 . 這意味著,當我重新加載頁面nodeMCU沒有收到任何數據(并且不能返回任何數據) .a=0function receive(conn,pa...
    發表于 10-25 18:21 ?11次下載
    MCU沒有響應<b class='flag-5'>服務器</b><b class='flag-5'>請求</b>,NodeMCU <b class='flag-5'>HTTP</b><b class='flag-5'>服務器</b>停止響應

    HTTP應用——上傳(POST)數據服務器,從服務器下載(GET)文件報文

    前言HTTP協議是一個簡單的請求-響應協議,它通常運行在TCP之上,傳輸端口一般為80。它指定了客戶端可能發送服務器什么樣的消息以及得到什么樣的響應。
    發表于 12-06 11:21 ?7次下載
    <b class='flag-5'>HTTP</b>應用——上傳(POST)數據<b class='flag-5'>到</b><b class='flag-5'>服務器</b>,從<b class='flag-5'>服務器</b>下載(GET)文件報文

    HTTP服務器項目實現介紹

    項目介紹 本項目實現的是一個HTTP服務器,項目中將會通過基本的網絡套接字讀取客戶端發來的HTTP請求并進行分析,最終構建HTTP響應并返回
    的頭像 發表于 11-08 16:54 ?1033次閱讀
    <b class='flag-5'>HTTP</b><b class='flag-5'>服務器</b>項目實現介紹

    使用NS1串口服務器HTTP模式上傳服務器數據

    HTTP協議工作于客戶端-服務端架構之上。瀏覽作為HTTP客戶端通過URL向HTTP服務端即W
    的頭像 發表于 08-30 12:36 ?575次閱讀
    使用NS1串口<b class='flag-5'>服務器</b><b class='flag-5'>HTTP</b>模式上傳<b class='flag-5'>服務器</b>數據

    服務器如何處理 HTTP 請求

    服務器處理HTTP請求的過程是一個有序且復雜的流程,通常涉及多個步驟。以下是服務器處理HTTP請求
    的頭像 發表于 12-30 09:37 ?248次閱讀
    主站蜘蛛池模板: 秋霞午夜鲁丝片午夜精品久 | AV97最新无码喷水叫床 | 天津相声广播在线收听 | 多肉np一女多男高h爽文现代 | yellow日本动漫观看免费 | 九九热这里只有精品视频免费 | 少妇无码太爽了视频在线播放 | 亚洲精品一区国产欧美 | 精品视频网站 | 高冷师尊被CAO成SAO货 | 香蕉久久夜色精品国产小优 | 俄罗斯15一16处交 | 男人插曲女人的叫声 | 男女又黄又刺激B片免费网站 | 1024人成网站色www下载 | 亚洲精品高清在线观看 | 日本久久道一区二区三区 | 麻豆官网md.pub | 久久久久久久免费 | 女人十八毛片水真多啊 | 涩涩在线观看免费视频 | 在线成人精品国产区免费 | 亚洲字幕在线观看 | 日本高清色片 | 久久99亚洲AV无码四区碰碰 | 99热久久视频只有精品6国产 | 老司机福利视频一区在线播放 | 国产人妻777人伦精品HD | 国产精品爽爽久久久久久无码 | 国产成a人片在线观看视频99 | 一个人的HD高清在线观看 | 国产Av男人的天堂精品良久 | 视频成人永久免费视频 | 国产午夜精品久久久久婷婷 | 第一次破女初国产美女 | 欧美成人一区二免费视频 | 国产在线精品一区二区网站免费 | 牲高潮99爽久久久久777 | 亚洲.日韩.欧美另类 | 高清国产免费观看视频在线 | YY6080A旧里番在线观看 |