91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 使用攔截器實現修改返回response,對特定的返回進行修改操作

使用攔截器實現修改返回response,對特定的返回進行修改操作

發布時間:2020-10-30 23:19:03 來源:億速云 閱讀:1696 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關使用攔截器實現修改返回response,對特定的返回進行修改操作,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

具體思路是:創建攔截器->根據chain獲取response->根據response判斷url是否需要特殊處理的->根據reponse.body().string()獲取json數據并轉換成bean類->修改bean類并創建新的responsebody和response->return修改完畢的response。

 public Interceptor getSignInInterceptor(){
    Interceptor interceptor = new Interceptor() {
      @Override
      public Response intercept(Chain chain) throws IOException {
        Request request = chain.request();
        Response response = chain.proceed(request);
        if(request.url().toString().contains(URL)) {
          String json =response.body().string();
          HttpResult<Object> responseResult = JsonUtil.parseJsonToBean(json,HttpResult.class);
          if(responseResult.getCode() == 1508) {
            responseResult.setData(null);
            String responseJson = JsonUtil.parseObjToJson(responseResult);
            ResponseBody myBody = ResponseBody.create(MediaType.get("text/plain"), responseJson);
            return response.newBuilder().body(myBody).build();
          }
          ResponseBody myBody = ResponseBody.create(MediaType.get("text/plain"), json);
          return response.newBuilder().body(myBody).build();
        }
        return response;
      }
    };
    return interceptor;
  }

其中有兩點需要特別注意一下:

1.ResponseBody的創建ResponseBody.create(MediaType.get("text/plain"), json);是用來根據json創建的MediaType.get("text/plain")是設置類型為text。

2.RequestBody調用string方法之后就不能用了,所以調用完了之后即便沒有修改也需要重新去創建ResponseBody和ResPonse,否則會報錯。

補充知識:攔截器中通過response返回JSON數據

做接口的攔截器時,需在攔截器中通過response返回接口是否允許調用的JSON信息:

response.setCharacterEncoding( "UTF-8");
response.setContentType( "application/json; charset=utf-8");
PrintWriter out = null ;
try{
JSONObject res = new JSONObject();
res.put( "success", "false");
res.put( "msg", "xxxx");
out = response.getWriter();
out.append(res.toString());
return false;
}
catch (Excepton e){
e.printStackTrace();
response.sendError( 500);
return false;
}

看完上述內容,你們對使用攔截器實現修改返回response,對特定的返回進行修改操作有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云梦县| 南京市| 乐至县| 侯马市| 富锦市| 龙口市| 长宁区| 精河县| 古丈县| 江孜县| 洪泽县| 项城市| 玉溪市| 视频| 文登市| 富宁县| 邯郸县| 西乌珠穆沁旗| 莲花县| 江陵县| 河南省| 延津县| 襄城县| 湘潭市| 湖北省| 镇江市| 格尔木市| 罗城| 富宁县| 衡阳市| 磐石市| 新沂市| 建水县| 乐平市| 博乐市| 巨野县| 苏尼特左旗| 嘉义市| 孝昌县| 青龙| 黄浦区|