亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java編程Post數據請求和接收代碼詳解

2024-07-13 10:13:53
字體:
來源:轉載
供稿:網友

這兩天在做http服務端請求操作,客戶端post數據到服務端后,服務端通過request.getParameter()進行請求,無法讀取到數據,搜索了一下發現是因為設置為text/plain模式才導致讀取不到數據

java;">urlConn.setRequestProperty("Content-Type","text/plain; charset=utf-8"); 

若設置為以下方式,則通過request.getParameter()可以讀取到數據

urlConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 

enctype的三種編碼

form表單中enctype屬性可以用來控制對表單數據的發送前的如何進行編碼,即在發送到服務器之前,所有字符都會進行編碼(空格轉換為"+"加號,特殊符號轉換為ASCIIHEX值)。默認是application/x-www-form-urlencoded。

multipart/form-data用于發送二進制的文件,其他兩種類型不能用于發送文件

text/plain用于發送純文本內容,不對特殊字符進行編碼,一般用于email之類的。

application/x-www-form-urlencoded和text/plain的區別簡單講就是一個發送html內容,一個發送純文本內容

application/x-www-form-urlencoded在發送前編碼所有字符(默認)

multipart/form-data不對字符編碼。在使用包含文件上傳控件的表單時,必須使用該值。

text/plain空格轉換為"+"加號,但不對特殊字符編碼。

當定義enctype為application/x-www-form-urlencoded時,使用以下方式接收數據

request.getParameter(參數名); 

當定義enctype為text/plain時,使用以下方式接收數據

    // 接收請求數據    BufferedReader reader = request.getReader();    char[] buf = new char[512];    int len = 0;    StringBuffer contentBuffer = new StringBuffer();    while ((len = reader.read(buf)) != -1) {      contentBuffer.append(buf, 0, len);    }        String content = contentBuffer.toString();                if(content == null){            content = "";        }

post與get

tp請求在所有的編程語言中幾乎都是支持的,我們常用的兩種為:GET,POST請求。一般情況下,發送一個GET請求都很簡單,因為參數直接放在請求的URL上,對于POST請求,由于其數據是在消息體中發送出去的,所以相對來說要麻煩一點,再涉及到需要發送文件等二進制的數據類型,就更需要更多的處理。

post和get可以通過鍵值對的方式進行參數傳輸,服務端通過request.getparameter方式進行請求獲取數據。

客戶端post數據到服務端,服務端接收處理

public class UrlConnection {	@SuppressWarnings("finally") 	  public static Boolean response(String url,String content) {		String line     = "";		String message    = "";		String returnData  = "";		Boolean postState   = false;		BufferedReader bufferedReader = null;		try {			URL urlObject = new URL(url);			HttpURLConnection urlConn = (HttpURLConnection) urlObject.openConnection();			urlConn.setDoOutput(true);			/*設定禁用緩存*/			urlConn.setRequestProperty("Pragma:", "no-cache");			urlConn.setRequestProperty("Cache-Control", "no-cache");			/*維持長連接*/			urlConn.setRequestProperty("Connection", "Keep-Alive");			/*設置字符集*/			urlConn.setRequestProperty("Charset", "UTF-8");			/*設定輸出格式為json*/			urlConn.setRequestProperty("Content-Type", "application/json;charset=utf-8");			/*設置使用POST的方式發送*/			urlConn.setRequestMethod("POST");			/*設置不使用緩存*/			urlConn.setUseCaches(false);			/*設置容許輸出*/			urlConn.setDoOutput(true);			/*設置容許輸入*/			urlConn.setDoInput(true);			urlConn.connect();			OutputStreamWriter outStreamWriter = new OutputStreamWriter(urlConn.getOutputStream(),"UTF-8");			outStreamWriter.write(content);			outStreamWriter.flush();			outStreamWriter.close();			/*若post失敗*/			if((urlConn.getResponseCode() != 200)){				returnData = "{/"jsonStrStatus/":0,/"processResults/":[]}";				message = "發送POST失敗!"+ "code="+urlConn.getResponseCode() + "," + "失敗消息:"+ urlConn.getResponseMessage();				// 定義BufferedReader輸入流來讀取URL的響應 				InputStream errorStream = urlConn.getErrorStream();				if(errorStream != null) 				        {					InputStreamReader inputStreamReader = new InputStreamReader(errorStream,"utf-8");					bufferedReader = new BufferedReader(inputStreamReader);					while ((line = bufferedReader.readLine()) != null) {						message += line;					}					inputStreamReader.close();				}				errorStream.close();				System.out.println("發送失?。″e誤信息為:"+message);			} else{				/*發送成功返回發送成功狀態*/				postState = true;				// 定義BufferedReader輸入流來讀取URL的響應 				InputStream inputStream = urlConn.getInputStream();				InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"utf-8");				bufferedReader = new BufferedReader(inputStreamReader);				while ((line = bufferedReader.readLine()) != null) {					message += line;				}				returnData = message;				inputStream.close();				inputStreamReader.close();				System.out.println("發送POST成功!返回內容為:" + message);			}		}		catch (Exception e) {			e.printStackTrace();		}		finally{			try {				if (bufferedReader != null) {					bufferedReader.close();				}			}			catch (IOException ex) {				ex.printStackTrace();			}			return postState;		}	}	/*讀取request數據*/	public static String getRequestData(HttpServletRequest request) throws IOException{		BufferedReader reader = request.getReader();		char[] buf = new char[512];		int len = 0;		StringBuffer contentBuffer = new StringBuffer();		while ((len = reader.read(buf)) != -1) {			contentBuffer.append(buf, 0, len);		}		String content = contentBuffer.toString();		if(content == null){			content = "";		}		return content;	}}

總結

以上就是本文關于Java編程Post數據請求和接收代碼詳解的全部內容,希望對大家有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产91久久久| 性色av一区二区三区红粉影视| 最近2019年好看中文字幕视频| 伦理中文字幕亚洲| 久久久噜久噜久久综合| 欧美做受高潮电影o| 日本亚洲欧洲色| 日韩网站免费观看高清| 国产精品永久在线| 欧美日韩国产中文精品字幕自在自线| 91精品国产91久久久久久吃药| 亚洲福利精品在线| 成人精品久久av网站| 国产视频久久网| 欧美视频免费在线观看| 国产亚洲精品久久久优势| 国产精品视频网| 欧美性少妇18aaaa视频| 亚洲欧美国产日韩中文字幕| 不卡av日日日| 成人免费福利在线| 国产视频丨精品|在线观看| 日韩av免费在线播放| 亚洲国产天堂久久综合| 高清欧美性猛交xxxx黑人猛交| 欧美激情网站在线观看| 欧美黑人极品猛少妇色xxxxx| 久久不射电影网| 国产一区私人高清影院| 最近2019免费中文字幕视频三| 国产欧美va欧美va香蕉在| 午夜精品美女自拍福到在线| 在线观看国产成人av片| 欧美精品videosex极品1| 国产精品免费一区豆花| 亚洲欧美在线一区| 懂色av一区二区三区| 久久久久久一区二区三区| 精品国产一区二区三区久久久狼| 91免费看片网站| 色偷偷偷综合中文字幕;dd| 国产+成+人+亚洲欧洲| 欧美日韩aaaa| 亚洲精品国产福利| 国产精品私拍pans大尺度在线| 国产精品自拍偷拍| 国产精品人成电影| 欧美一级在线亚洲天堂| 欧美有码在线观看视频| 精品国产91久久久久久老师| 精品美女国产在线| 亚洲自拍偷拍在线| 亚洲色图25p| 亚洲一区免费网站| 日韩电影大全免费观看2023年上| 狠狠操狠狠色综合网| 亚洲国产欧美一区二区三区久久| 91热福利电影| 久久久亚洲影院| 欧美性猛交xxxx富婆弯腰| 欧美极品欧美精品欧美视频| 奇米一区二区三区四区久久| 欧美专区中文字幕| 91精品久久久久久久久青青| 亚洲一区中文字幕在线观看| 久久亚洲精品成人| 久久影视电视剧凤归四时歌| 色噜噜狠狠狠综合曰曰曰| 日韩最新免费不卡| 精品亚洲一区二区三区在线观看| 日韩中文在线中文网在线观看| 91香蕉嫩草影院入口| 久久综合国产精品台湾中文娱乐网| 亚洲国产日韩欧美在线动漫| 欧美成人性色生活仑片| 伊人久久久久久久久久| 亚洲人午夜精品免费| 亚洲第一区中文字幕| 精品久久久香蕉免费精品视频| 成人网欧美在线视频| 欧美大全免费观看电视剧大泉洋| 国产中文字幕亚洲| 日韩欧美成人精品| 亚洲在线一区二区| 久久综合电影一区| 国产在线视频2019最新视频| 日韩在线精品视频| 九色成人免费视频| 国产精品青草久久久久福利99| 欧美极品少妇xxxxⅹ喷水| 视频直播国产精品| 国产欧美日韩精品在线观看| 精品国产91久久久久久老师| 国产精品永久免费| 爱福利视频一区| 在线精品视频视频中文字幕| 欧美日韩国产精品专区| 亚洲区在线播放| 欧美网站在线观看| 久久精品人人爽| 欧美亚洲一级片| 91精品久久久久久久久久另类| 久久视频在线播放| 国产精品jizz在线观看麻豆| 日本免费在线精品| 91亚洲精品在线观看| 久久精品视频va| 亚洲第一视频在线观看| 91性高湖久久久久久久久_久久99| 亚洲成人精品久久久| 国产日韩欧美自拍| 欧美体内谢she精2性欧美| 国产97在线视频| 欧美在线一区二区视频| 97在线精品视频| 亚洲第一黄色网| 日韩精品视频在线免费观看| 日本一区二区三区在线播放| 91精品国产91久久久久久| 欧美性猛交xxxx免费看漫画| 久久久久在线观看| 韩剧1988在线观看免费完整版| 国产精品视频在线播放| 国产精品成人aaaaa网站| 国产精品久久综合av爱欲tv| 国产精品久久久久久久美男| 精品国产91久久久久久| 色综合久久悠悠| 亚洲福利视频网| 欧美在线免费看| 久久精品中文字幕一区| 亚洲综合色激情五月| 最近2019中文字幕大全第二页| 亚洲日本成人女熟在线观看| 日本久久久a级免费| 97国产一区二区精品久久呦| 69av视频在线播放| 国产精品久久久久久久久免费看| 色偷偷噜噜噜亚洲男人的天堂| 国产日本欧美视频| 2018中文字幕一区二区三区| 亚洲缚视频在线观看| 欧美日韩爱爱视频| 亚洲国产精品福利| 色偷偷噜噜噜亚洲男人的天堂| 精品成人乱色一区二区| 97超视频免费观看| 欧美精品videofree1080p| 久久欧美在线电影| 亚洲黄色成人网| 亚洲va码欧洲m码| 日韩成人av在线播放| 日韩av一区在线| 国产mv免费观看入口亚洲| 亚洲精品电影网站| 51视频国产精品一区二区| 国产丝袜一区二区三区| 在线视频国产日韩| 91视频免费在线| 狠狠躁18三区二区一区| 中文字幕日韩欧美在线视频| 久久香蕉精品香蕉| 欧美久久精品一级黑人c片| 亚洲欧美成人一区二区在线电影|