javaservlet處理四種常用api請求get,put,post,delete


  一般在網站搭建中servlet只需處理post,get請求便足已。本篇注重使用javaweb編寫restful風格api,在servlet中對四種常用請求進行處理。

  在api中對於一個請求要做的通常是提取header參數,提取攜帶數據(post,put)。在這里已post為例來說明用法。

  下面是發起的post請求,用python(很簡單)寫的,該請求既有自定義header參數Bearer,也有攜帶數據bodys里的內容

import json
import requests

taken='YWMtoWBEBAFOEeei0SdHniRB6QAAAAAAAAAAAAAAAAAAjwAU4R56atn3HZQyagAgMAAAFanGEFTABPGgAqPOaU00kjW851AIpsKCuT8jAG1PqHyBpY6y5vOgk1zg'
headers = {'Accept': 'application/json','Content-Type':'application/json','Authorization':'Bearer '+taken}
bodys={'username':'test5','password':'123456'}
url='http://localhost:8080/xiaoyanAPI'
response=requests.post(url,data=json.dumps(bodys),headers=headers)
print response.text

  下面是處理post請求代碼

 1 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 2         //打印某一個header
 3         System.out.println(request.getHeader("Authorization"));
 4         System.out.println();
 5         //獲取header參數名,並打印出內容
 6         Enumeration<String> s=request.getHeaderNames();
 7         String str;
 8         while((str=s.nextElement())!=null)
 9             System.out.println(request.getHeader(str));
10         System.out.println();
11         //獲取post攜帶數據流
12         String acceptjson;
13         try {
14             BufferedReader br = new BufferedReader(new InputStreamReader( (ServletInputStream) request.getInputStream(), "utf-8"));  
15                         StringBuffer sb = new StringBuffer("");  
16                         String temp;  
17                         while ((temp = br.readLine()) != null) {  
18                             sb.append(temp);  
19                         }  
20                         br.close();  
21                         acceptjson = sb.toString();  
22                         System.out.print(acceptjson);
23                     } catch (Exception e) {  
24                         e.printStackTrace();    
25                     }
26     }

  其他三種請求處理方式類似。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM