來來來,今天教你-Java-是如何發起-http-請求的
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 返回陣列中的第一行第一列 return {'status':'success','message':result } 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)
(在轉換過程中,不知道出什麼問題了,中文顯示了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請求,從而呼叫由python編寫的功能模組。在使用python編寫功能模組時,可以返回json格式的資料。在之後使用Java進行呼叫時,使用工具進行轉換得出需要的資料。
最後如何讓自己一步步成為技術專家
說句實話,如果一個打工人不想提升自己,那便沒有工作的意義,畢竟大家也沒有到養老的年齡。
當你的技術在一步步貼近阿里p7水平的時候,毫無疑問你的薪資肯定會漲,同時你能學到更多更深的技術,交結到更厲害的大牛。
推薦一份Java架構之路必備的學習筆記,內容相當全面!!!
成年人的世界沒有容易二字,前段時間刷抖音看到一個程式設計師連著加班兩星期到半夜2點的影片。在這個行業若想要拿高薪除了提高硬實力別無他法。
你知道嗎?現在有的應屆生實習薪資都已經趕超開發5年的程式設計師了,實習薪資26K,30K,你沒有緊迫感嗎?做了這麼多年還不如一個應屆生,真的非常尷尬!
進了這個行業就不要把沒時間學習當藉口,這個行業就是要不斷學習,不然就只能被裁員。所以,抓緊時間投資自己,多學點技術,眼前困難,往後輕鬆!
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69990490/viewspace-3008903/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MAC 下使用Postman設定Cookie來發起請求MacPostmanCookie
- SpringBoot是如何動起來的Spring Boot
- post請求帶來的option
- 遊戲中的角色是如何“動”起來的?遊戲
- Python是如何火起來的 為何發展如此迅速Python
- 使用 Laravel 請求類來驗證表單請求Laravel
- 如何讓開發變得敏捷起來?敏捷
- GitHub 是怎麼火起來的Github
- GIF 格式解析之表情包是如何動起來的
- 火狐瀏覽器是如何又變快起來的?瀏覽器
- php模擬請求(偽造來源和請求ip)PHP
- HTTP協議如何發起請求HTTP協議
- 今天來聊聊運維該如何修煉運維
- 為了一個HTTP請求問題,差點和iOS幹起來HTTPiOS
- 使用requests庫來傳送HTTP請求HTTP
- 傳入http請求的UserAgent 根據它判斷是手機還是電腦傳送過來的請求HTTP
- axios.pacth () 請求如何發起?iOS
- 如何使用拉取請求(PR)來改善你的程式碼審查
- 一起來學習如何用 Node 來製作 CLI
- SAP Spartacus 使用者請求中的 current id 是從哪裡來的
- 今天來聊Java ClassLoaderJava
- 讀《程式是如何跑起來的》
- 對請求來源進行白名單限制
- 教你如何使用 cron 來安排任務
- 對tomcat來說,每一個進來的請求(request)都需要一個執行緒,直到該請求結束。Tomcat執行緒
- 這次給大家帶來複雜點的ajax請求該如何破?
- 來來來,一起五句話搞定JavaScript作用域JavaScript
- 開發公眾號吃的大坑,今天記下來。
- Flutter是如何在iOS上執行起來的原始碼解讀FlutteriOS原始碼
- 如何讓Spring Boot 的配置動起來?Spring Boot
- 【故障公告】龍捲風來襲:突增的併發請求,撐不住的CPU
- 使用 request 和 cheerio 庫來傳送 HTTP 請求HTTP
- 白話 Tornado 原始碼(3):請求來了原始碼
- 教你mysql如何增加外來鍵約束MySql
- Janky frames 是如何計算出來的
- 谷歌雲遊戲來了?抱歉,香不起來谷歌遊戲
- 今天收到Oracle寄來的OCP證書Oracle
- 移動CRM系統使用起來如何