使用Restlet Client發送各種Get和Post請求


在開發web應用時,在對Spring中的Controller進行測試時,需要發送各種get以及post請求進行測試,當然可以自己在瀏覽器里輸入url或者對於測試而言使用Spring提供的MockMvc編寫代碼進行測試,但是當我們想要測試諸如帶Form表格提交(提交文件)的post等請求時,直接在瀏覽器里輸入url或者使用MockMvc(這個我還不知道怎么弄…)就不大好實現了,Restlet Client為我們提供了便利。
其地址為:https://restlet.com/modules/client/,可以安裝Chrome瀏覽器插件,這樣使用起來就更加方便,插件在瀏覽器界面如圖所示:
這里寫圖片描述
主要有三個部分,REQUEST部分用來創建請求,RESPONSE部分表示請求的回復,可以在
COMPLETE REQUEST HEADERS部分查看自己發出的請求的完整請求頭,接下來便創建請求

1. 創建普通get請求
這里寫圖片描述
發送get請求比較簡單,直接輸入url添加參數就可以了

2. 創建普通post請求
發送普通的post請求與1中的發送get請求類似,只是把METHOD改成post即可,再添加必要的參數

3. 創建post請求,模擬form提交表單
有時我們需要模擬form表單提交文件,此時對應controller代碼可以如下獲取

    @RequestMapping("/proj")
    @ResponseBody
    public AjaxResult upload(String fileName, InputStream inputStream, HttpServletRequest request) {
                    MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
                    int fileCount = 0;
                    Iterator<String> iterator = multiRequest.getFileNames();
                    while (iterator.hasNext()) {
                        String formFileElementName = iterator.next();
                        fileCount++;
                        MultipartFile multipartFile = multiRequest.getFile(formFileElementName);
                        if (null == multipartFile) {
                            throw new Exception("文件不能為空");
                        }
                    }    
    }
  
  
 
 
         
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

當我們發送模擬form表單請求時,注意到request請求實際為MultipartHttpServletRequest類型,Spring會自動填充inputStream參數,實際上他與request里的inputStream是同一個,在restlet可以如下模擬
這里寫圖片描述
有幾個需要注意的地方:

  • BODY選項里面選擇Form
  • 點擊 Add form parameter並選擇類型為File同時注意一定要寫文件名,不然Controller里的代碼Iterator<String>
    iterator = multiRequest.getFileNames();
    是獲取不到文件名的
  • 注意Content-Type類型為multipart/form-data
    我們查看下面的COMPLETE REQUEST HEADERS,可以發現我們的請求類型為 multi/form-data,同時Restlet Client會自動幫我們設置boundary頭部
    這里寫圖片描述
    4. 創建post請求,直接傳輸文件
    除了模擬form表單提交文件,我們也可以直接在body里添加文件,這時controller對應的request就不是MultipartHttpServletRequest類型
    這里寫圖片描述
    選擇BODY中的File選項,並拖拽文件,此時Restlet Client會自動幫我們填入對應的Content-type類型


免責聲明!

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



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