使用FireFox插件RESTClient、HttpRequester模擬http(get post)請求


我們寫好一個接口后,需要進行測試。有時我們會寫一個html表單提交,無疑增加了工作量,尤其是當參數比較多或者傳json或xml數據時,效率更是大大降低。我們可以使用基於FireFox的RESTClient或HttpRequester插件來進行測試。

打開火狐瀏覽器,在右上角的菜單中有附加組件,進入其中,直接搜索這兩個插件,安裝后重啟即可,安裝完后在瀏覽器右上方生成了插

件的圖標。

1 RESTClient

發送get請求時參數在url中;當發送post請求傳參時需要設置頭信息,點擊上圖中的Headers-Custom Header進行設置

2 HttpRequester

RestClient

1.傳輸單個參數

content-type:application/json;charset=UTF-8

requestbody

{
"username":"qqq"
}

Controller

        @RequestMapping(value = "/restClinet")
        @ResponseBody
        public String restClinet(@RequestBody String username) {

            logger.info("TestRestClient" + username  );
            // save trade
            
            return username;
        }

2.傳輸多個參數(對象)

{
"tradeId":"66",
"tradeServer":"一夢十年",
"tradeCurrency":"4500",
"tradeMoney":"100",
"tradeTime":"2018年10月10日 12:24:16",
"tradeComment":"333"
}
@RequestMapping(value = "/restClinet")
        @ResponseBody
        public Trade restClinet(@RequestBody Trade trade) {

            logger.info("TestRestClient"  + trade);
            // save trade
            
            return trade;
        }

復合型json格式

{
"stuId":"66",
"stuName":"小紅",
"stuSex":"girl",
"book":{
          "bookName":"math",
          "bookOwner":"Jim"
         }

}

 

 

ErrorCode

package com.my.base;

public enum Error{    
    
    S001("S001","Success"),
    E001("E001","System error!"),
    E002("E002","Sorroy,user cannot find in database!"),
    E003("E003","Unknow error!");
    
    private String errorCode;
    private String errorMessage;
    public String getErrorCode() {
        return errorCode;
    }
    public void setErrorCode(String errorCode) {
        this.errorCode = errorCode;
    }
    public String getErrorMessage() {
        return errorMessage;
    }
    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }
    private Error(String errorCode, String errorMessage) {
        this.errorCode = errorCode;
        this.errorMessage = errorMessage;
    }  
    
    
}
@RequestMapping(value = "/restClinet")
        @ResponseBody
        public Map<String, Object> restClinet(@RequestBody Trade trade) {

            logger.info("TestRestClient"  + trade);
            // save trade
            Map<String, Object> results = new HashMap<String, Object>();
            results.put(Error.S001.getErrorCode(),Error.S001.getErrorMessage());
            results.put("trades",this.tradeService.getAllTrades());            
            
            return results;
        }

返回模版信息

 3.HttpHeaders傳輸數據

1)添加HttpHeaders

2)獲取HttpHeaders

@RequestMapping(value = "/restClinet")
        @ResponseBody
        public Map<String, Object> restClinet(@RequestBody Trade trade,@RequestHeader HttpHeaders headers) {

            logger.info("TestRestClient"  + trade);
            // save trade
            String userCountry = headers.getFirst("userType");
            Map<String, Object> results = new HashMap<String, Object>();
            results.put(Error.S001.getErrorCode(),Error.S001.getErrorMessage());
            results.put("userCountry", userCountry);
            results.put("trades",this.tradeService.getAllTrades());    
            
            
            return results;
        }

 或者

        @RequestMapping(value = "/restClinet")
        @ResponseBody
        public Map<String, Object> restClinet(@RequestBody Trade trade,@RequestHeader("userType") String  userType) {

            logger.info("TestRestClient"  + trade);
            // save trade
            Map<String, Object> results = new HashMap<String, Object>();
            results.put(Error.S001.getErrorCode(),Error.S001.getErrorMessage());
            results.put("userType", userType);
            results.put("trades",this.tradeService.getAllTrades());    
            
            
            return results;
        }

 

 


免責聲明!

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



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