來來來,今天教你-Java-是如何發起-http-請求的

欢喜编程發表於2024-03-13

BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 開啟和URL之間的連線 URLConnection conn = realUrl.openConnection(); // 設定通用的請求屬性 conn.setRequestProperty("accept", " / "); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 傳送POST請求必須設定如下兩行 conn.setDoOutput(true); conn.setDoInput(true); // 獲取URLConnection物件對應的輸出流 out = new PrintWriter(conn.getOutputStream()); // 傳送請求引數 out.print(param); // flush輸出流的緩衝 out.flush(); // 定義BufferedReader輸入流來讀取URL的響應 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("傳送 POST 請求出現異常!"+e); e.printStackTrace(); } //使用finally塊來關閉輸出流、輸入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result; } }

例項演示

#app的路由地址"/show"即為ajax中定義的url地址,採用POST、GET方法均可提交 @app.route("/show",methods=["GET", "POST"]) def show(): #首先獲取前端傳入的name資料 if request.method == "POST": name = request.form.get("name") if request.method == "GET": name = request.args.get("name") #建立Database類的物件sql,test為需要訪問的資料庫名字 具體可見Database類的建構函式 sql = Database("test") try: #執行sql語句 多說一句,f+字串的形式,可以在字串裡面以{}的形式加入變數名 結果儲存在result陣列中 result = sql.execute(f"SELECT type FROM type WHERE name='{name}'") except Exception as e: return {'status':"error", 'message': "code error"} else: if not len(result) == 0: #這個result,我覺得也可以把它當成資料表,查詢的結果至多一個,result 0 返回陣列中的第一行第一列 return {'status':'success','message':result 0 } else: return "rbq"

下面 我們利用POST方法發起請求,Java程式碼如下:

//建立發起http請求物件 HttpRequest h = new HttpRequest(); //向121.41.111.94/show發起POST請求,並傳入name引數 String content = h.sendPost(" ","name=張新宇"); System.out.println(c 需要zi料+ 綠色徽【vip1024b】

ontent);

我們列印出content值,發現就是python中show()返回的json(在Java中,content被識別為String型別,而不是json)

來來來,今天教你 Java 是如何發起 http 請求的

(在轉換過程中,不知道出什麼問題了,中文顯示了unicode編碼。但在後面的轉json格式後就沒有這樣的問題了)

字串轉json

Java成功發起Http請求後,由於返回值是String型別,而不是原本python函式中的json格式。所以我們需要將字串型別轉為json格式,並透過鍵值對的形式得出message對應的值。

首先在maven中引入jar包:

<dependency> <groupId> com.alibaba </groupId> <artifactId> fastjson </artifactId> <version> 1.2.28 </version> </dependency>

轉換程式碼如下:

import com.alibaba.fastjson.JSONObject; JSONObject jsonObject = JSONObject.parseObject(content); System.out.println(jsonObject); System.out.println(jsonObject.getString("message"));

執行結果:

來來來,今天教你 Java 是如何發起 http 請求的

最後

以上就是Java發起http請求,從而呼叫由python編寫的功能模組。在使用python編寫功能模組時,可以返回json格式的資料。在之後使用Java進行呼叫時,使用工具進行轉換得出需要的資料。

最後如何讓自己一步步成為技術專家

說句實話,如果一個打工人不想提升自己,那便沒有工作的意義,畢竟大家也沒有到養老的年齡。

當你的技術在一步步貼近阿里p7水平的時候,毫無疑問你的薪資肯定會漲,同時你能學到更多更深的技術,交結到更厲害的大牛。

推薦一份Java架構之路必備的學習筆記,內容相當全面!!!

來來來,今天教你-Java-是如何發起-http-請求的

成年人的世界沒有容易二字,前段時間刷抖音看到一個程式設計師連著加班兩星期到半夜2點的影片。在這個行業若想要拿高薪除了提高硬實力別無他法。

你知道嗎?現在有的應屆生實習薪資都已經趕超開發5年的程式設計師了,實習薪資26K,30K,你沒有緊迫感嗎?做了這麼多年還不如一個應屆生,真的非常尷尬!

進了這個行業就不要把沒時間學習當藉口,這個行業就是要不斷學習,不然就只能被裁員。所以,抓緊時間投資自己,多學點技術,眼前困難,往後輕鬆!

【關注】+【轉發】+【點贊】支援我!創作不易!


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69990490/viewspace-3008903/,如需轉載,請註明出處,否則將追究法律責任。

相關文章