国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

從form的enctype屬性到Content-Type再到request.getInputStream()

2024-04-27 15:13:45
字體:
來源:轉載
供稿:網友

還是一個異常引發的故事:

需要實現一個手機客戶端行為分析的需求,手機客戶端需要上傳一些數據文件。手機客戶端通過http協議post方式上傳數據文件的時候,我們發現在服務器端無法通過request.getInputStream()獲取到相應的數據,調用request.getInputStream()讀取數據里頭啥都木有。

經過各種嘗試我們注意到如下的情況:

1.在不做任何修改的情況下,調用request.getParameter()可以獲取到部分數據,即url拼接參數的數據。

2.在不做任何修改的情況下,如果在之前任何地方都不調用request.getParameter(),而是直接調用request.getInputStream()是可以獲取到數據的。

3.原來客戶端使用默認的請求頭Content-Type:application/x-www-form-urlencoded,修改此值為multipart/form-data或者application/octet-stream之后,通過request.getInputStream()可以獲取到數據,即使之前調用過request.getParameter()。

最后的解決方法當然是客戶端修改Content-Type,因為服務器端request.getInputStream()的方法不方便修改。今天具體分析下里頭的原理。

一.從form的enctype屬性到Content-Type

寫html的時候我們都知道form有個屬性enctype,默認值是application/x-www-form-urlencoded,這個值表示會將表單數據用&符號做一個簡單的拼接。例如:

[plain] view plain copyPRint?POST /post_test.php HTTP/1.1   Accept-Language: zh-CN  User-Agent: Mozilla/4.0   Content-Type: application/x-www-form-urlencoded   Host: 192.168.12.102  Content-Length: 42  Connection: Keep-Alive  Cache-Control: no-cache     title=test&content=%B3%AC%BC%B6%C5%AE%C9%FA&submit=post+article  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武宣县| 沁阳市| 镇安县| 巴彦淖尔市| 邹城市| 来凤县| 阿拉善右旗| 大姚县| 辽宁省| 浠水县| 科技| 额敏县| 桃园县| 杭锦后旗| 鹤山市| 庆云县| 湘潭县| 罗山县| 隆尧县| 长泰县| 千阳县| 汝州市| 汾阳市| 宁河县| 会东县| 花莲市| 谷城县| 榆林市| 绥宁县| 黑水县| 星座| 铁岭市| 嘉鱼县| 新蔡县| 黄石市| 黄龙县| 永宁县| 萨迦县| 平阳县| 化隆| 沐川县|