HttpUrlConnection發送url請求(后臺springmvc)

1.HttpURLConnection發送url請求

public class JavaRequest {private static final String BASE_URL = "http://localhost:8080/dsdemo/";public static String userToken = null;public static String problemName = null;public static String sendPost(String sufUrl, JSONObject params) {DataOutputStream out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(BASE_URL+sufUrl);// 打開和URL之間的連接HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();connection.setDoOutput(true);  connection.setDoInput(true);  connection.setUseCaches(false);  connection.setInstanceFollowRedirects(true);  connection.setRequestMethod("POST"); // 設置請求方式  connection.setRequestProperty("Connection", "Keep-Alive");connection.connect();out = new DataOutputStream (connection.getOutputStream());// 發送請求參數,防止中文亂碼out.write(jsonToUrlParams(params).getBytes("UTF-8"));// flush輸出流的緩沖
            out.flush();// 定義BufferedReader輸入流來讀取URL的響應in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("發送 POST 請求出現異常!");e.printStackTrace();}//使用finally塊來關閉輸出流、輸入流finally{try{if(out!=null){out.close();}if(in!=null){in.close();}}catch(IOException ex){ex.printStackTrace();}}System.out.println(result);return result;}    private static String jsonToUrlParams(JSONObject params){StringBuilder sb = new StringBuilder();sb.append("userToken=").append(userToken);for(Iterator<?> it = params.keys(); it.hasNext(); ){String key = (String) it.next();sb.append("&").append(key).append("=").append(params.get(key));}return sb.toString();}
}

遺留問題:

  a.按照網上說的發送 json格式的字符串,但是后臺無法接收到。所以這里將jsonObject轉化成 url 參數的形式。

  b.jquery發送json格式的數據是可以接收到的。

 <script type="text/javascript">var sendData = {username: "hjz",password: "123"};(function (){$.ajax({  type:'post',      url:'http://localhost:8080/dsdemo/userRegister',  data: sendData,  dataType:'json',  success:function(data){  alert(JSON.stringify(data));} ,error: function(data){alert(JSON.stringify(data));}});  })(); </script>

?

另外可能會出現中文亂碼的問題:

  a. 首先發送數據利用DataOutputStream out.write(jsonToUrlParams(params).getBytes("UTF-8"));

  b. 接收后臺  response.setCharacterEncoding("utf-8");
?? ??? ?      request.setCharacterEncoding("utf-8");

轉載于:https://www.cnblogs.com/hujunzheng/p/5473254.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531321.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531321.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531321.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

springmvc+jpa實現分頁的兩種方式

1.工具類 public final class QueryTool {public static PageRequest buildPageRequest(int pageNumber, int pageSize, String sortType){Sort sort null;if("auto".equals(sortType)) {sort new Sort(Direction.DESC, "ctime");} else {sort new Sort…

不使用session,借助redis實現驗證碼

1.首先看一下基本的流程 2.看一下代碼 注&#xff1a;其中用到的一些工具類&#xff0c;可以到我的github上去下載 https://github.com/hjzgg/usually_util/tree/master/utils windows 下的 redis下載 https://github.com/hjzgg/redis 獲取驗證碼的tooken RequestMapping(value…

PS批處理的使用

一、 前言 做開發的時候&#xff0c;最多的時候就是圖片的使用了。有時候圖片的處理都按照同樣的步驟&#xff0c;比如說統一將圖片的大小調整為固定大小&#xff0c;或者統一在所有的圖片的的某個位置上加入文字或者小圖片等等&#xff0c;這時候PS的批處理可以幫你完成這些重…

exe4j的使用

下載&#xff1a;http://download.cnet.com/exe4j/3000-2070_4-144405.html 參考&#xff1a;http://blog.chinaunix.net/uid-25749806-id-4380850.html 注&#xff1a;打包成jar包的一般就是src目錄&#xff0c;其他目錄放到目標文件夾中&#xff0c;目錄結構如下 如何解決exe…

c語言指針和數組的聯系

c語言指針與數組**一、指針與一維數組**1.一維數組的存儲方式2. 對一維數組名的理解3. 數組下標和指針的關系4.一位數組名與取數組首地址的區別**二、指針與二維數組**1.二維數組的存儲方式2.二維數組下標和指針的對應關系例題:懷著忐忑的心情寫了人生第一篇博客......誠惶誠恐…

android模擬器默認位置的修改

1.創建ANDROID_SDK_HOME環境變量&#xff0c;如ANDROID_SDK_HOMED:\eclipse_android\android-sdk 2.在ANDROID_SDK_HOME目錄下&#xff0c;建立.android目錄 3.默認的avd路徑是C:\Users\Administrator\.android, 將里面的內容放入到ANDROID_SDK_HOME中的.android目錄下 4.windo…

python 求出4行5列的二維數組周邊元素之和

題目:求出4行5列的二維數組周邊元素之和 代碼&#xff1a; import random x [[random.randint(1,10)for j in range(5)]for i in range(4)] for item in x:print(item) y [x[0][0],x[0][1],x[0][2],x[0][3],x[0][4],x[1][0],x[1][4],x[2][0],x[2][4],x[3][0],x[3][4]] prin…

android表白app

一、前言 馬上就要520和521了&#xff0c;是不是還有像我一樣的單身狗啊。我就知道有&#xff0c;所以這兩天簡單寫了這個小程序&#xff08;其實是替別人寫的&#xff09;&#xff0c;雖然我并不會用去騙女孩子&#xff08;因為最近太忙了&#xff0c;實習完之后要搞畢設&…

c語言:malloc函數的簡介

文章目錄一、為什么需要malloc函數&#xff1f;二、如何使用malloc函數&#xff1f;三、用malloc函數自定義數組長度一、為什么需要malloc函數&#xff1f; 用于解決傳統數組以下缺點。 ①傳統數組的長度必須要事先指定。 ②傳統數組的內存無法手動釋放。 ③傳統數組的長度定義…

webpack+react+es6開發模式

一、前言 實習了兩個月&#xff0c;把在公司用到的前端開發模式做個簡單的整理。公司里前端開發模式webpackreactreduxes6&#xff0c;這里去掉了redux。 webpack, react, redux等學習網址&#xff1a;http://www.cnblogs.com/hujunzheng/p/5405780.html 二、簡單的步驟條組件 …

c語言輸入字符時控制符%c前加空格的原因解釋

文章目錄一、前景知識1、緩沖區2、標準輸入流二、scanf語句的執行1、scanf對于整形%d的輸入2、scanf對于字符%c的輸入在編一個代碼時偶然間發現一個知識盲點…用scanf語句輸入字符時需要在控制符%c前加空格。在解釋相關這個原因前我們需要了解幾個相關知識點。 一、前景知識 1…

git命令分類圖

轉載于:https://www.cnblogs.com/hujunzheng/p/5560826.html

python中為什么沒有自增或者自減

在c語言和c中我們經常會用到自增或者自減的語句&#xff0c;但對于python中如果運用這種格式便會報錯…why&#xff1f; 一、預備知識 小整數池 python中為了提高儲存效率&#xff0c;對于int類型的整型變量的儲存&#xff0c;有一個專門的小整數池&#xff0c;它會存放-5到256…

數據結構算法模擬系統

一、前言 學習數據結構已經有很長時間了&#xff0c;加上之前搞過一段時間的ACM&#xff0c;雖然搞得并不怎么樣吧&#xff0c;但是喜歡的東西不能放棄&#xff0c;一直打算寫一個算法模擬系統&#xff0c;對常用的一些算法進行簡單的模擬&#xff0c;于是我的畢業設計就這樣誕…

python語言map函數及map object at 亂碼錯誤

文章目錄一、map函數的簡介1、map函數的作用2、語法格式3、舉例例1、例2、二、報錯一、map函數的簡介 1、map函數的作用 對某個序列以給定的函數格式作映射。 2、語法格式 map(function,iterable) ??function可以填函數&#xff0c;也可以填數據類型 3、舉例 例1、 a [1,2,…

推薦幾款jquery圖片切換插件

一、前言 畢業季到了&#xff0c;大家都在匆匆忙忙的記錄大學里最美好的時光&#xff0c;照片中各種花式、各種姿勢都涌現出來了。這么多的照片怎么展示出來給自己的好友看呢&#xff1f;有人選擇做成視頻&#xff0c;有人選擇ps之后做成圖片集&#xff0c;而我選擇利用靜態網頁…

c語言表白

馬上就要520了&#xff0c;不少小伙伴們一定開始想盡各種辦法進行表白了…那么身為奔跑在程序員道路上的我們也一定要有獨特的表白方法&#xff01; 下面是一段表白代碼&#xff0c;請直接搬去用吧&#xff01;&#xff01;&#xff01; #include <stdio.h> void change…

java注意的一些細節問題

1. 大括弧作用域問題 public static void main(String[] args) {{int x;{int x;//編譯錯誤&#xff1a;Duplicate local variable x}} } 2.boolean值的運算 public static void main(String[] args) {if(true && false) {}if(true & false) {}System.out.println(t…

python表白

馬上就要520了&#xff0c;不少小伙伴們一定開始想盡各種辦法進行表白了…那么身為奔跑在程序員道路上的我們也一定要有獨特的表白方法&#xff01; 下面是一段表白代碼&#xff0c;請直接搬去用吧&#xff01;&#xff01;&#xff01; import turtle import timedef hart_ar…

git revert和reset區別

1.在github上建立測試項目并克隆到本地 2.本地中新建兩個文本文件 3.將a.txt commit并push到遠程倉庫 執行 git add a.txt, git commit -m "a.txt", git push 4.將b.txt提交到本地倉庫&#xff0c;不執行push 通過gitk命令查看提交歷史如下&#xff1a; 情景&#xf…