優(yōu)購物官方網(wǎng)站訂單查詢電商怎么推廣自己的產(chǎn)品
目錄
一、訪問路徑(@RequestMapping)
1.1 訪問路徑注解作用域
1.2 路徑精準(zhǔn)(模糊)匹配
1.3 訪問路徑限制請(qǐng)求方式
1.4 進(jìn)階訪問路徑請(qǐng)求注解
1.5 與WebServlet的區(qū)別
二、接收請(qǐng)求數(shù)據(jù)
2.1 請(qǐng)求param參數(shù)
2.2 請(qǐng)求路徑參數(shù)
2.3 請(qǐng)求Json數(shù)據(jù)參數(shù)格式
三、接收其它類型數(shù)據(jù)
3.2 接收請(qǐng)求頭數(shù)據(jù)
3.3 原生Api對(duì)象操作
一、訪問路徑(@RequestMapping)
1.1 訪問路徑注解作用域
眾所周知@RequestMapping注解是用于設(shè)置訪問路徑的,但是還需要了解其作用域。觀看源碼可以看到
RequestMapping可以作用在類和方法上,但是我們一般都是寫在類的方法上,所以下面將舉出具體例子介紹為什么會(huì)作用在類上。
案例:
@RestController
public class AppointmentController {@RequestMapping("/appointment/Hello")public String hello(){System.out.println("Hello");return null;}@RequestMapping("/appointment/Hi")public String Hi(){System.out.println("Hi");return null;}@RequestMapping("/appointment/Bonjo")public String Bonjo(){System.out.println("Hello");return null;}
}
以上案例可以看到在一個(gè)Controller層中如果定義每一個(gè)方法路徑下,都需要加上“/appointment”的父路徑。當(dāng)方法很多的時(shí)候就會(huì)非常麻煩,類上使用RequestMapping作用在于可以簡(jiǎn)化,類中方法的地址映射,相當(dāng)于類映射/方法映射地址。
1.2 路徑精準(zhǔn)(模糊)匹配
?除了前面的一些注解以外,@RequestMapping的路徑有兩種方式:1.模糊匹配 2.精準(zhǔn)匹配
下面分別介紹模糊與精準(zhǔn)匹配
1.模糊匹配
在@RequestMapping注解指定 URL 地址時(shí),通過使用通配符,匹配多個(gè)類似的地址。
@Controller
public class ProductController {/*** 路徑設(shè)置為 /product/* * /* 為單層任意字符串 /product/a /product/aaa 可以訪問此handler * /product/a/a 不可以* 路徑設(shè)置為 /product/** * /** 為任意層任意字符串 /product/a /product/aaa 可以訪問此handler * /product/a/a 也可以訪問*/@RequestMapping("/product/*")@ResponseBodypublic String show(){System.out.println("ProductController.show");return "product show!";}
}
單層匹配和多層匹配:
? /*:只能匹配URL地址中的一層,如果想準(zhǔn)確匹配兩層,那么就寫“/*/*”以此類推。
? /**:可以匹配URL地址中的多層。
其中所謂的一層或多層是指一個(gè)URL地址字符串被“/”劃分出來的各個(gè)層次
這個(gè)知識(shí)點(diǎn)雖然對(duì)于@RequestMapping注解來說實(shí)用性不大,但是將來配置攔截器的時(shí)候也遵循這個(gè)規(guī)則。
2.精準(zhǔn)路徑匹配
項(xiàng)目中最常用的就是精準(zhǔn)路徑匹配
所謂精準(zhǔn)路徑匹配是指在@RequestMapping注解指定 URL 地址時(shí),不使用任何通配符,按照請(qǐng)求地址進(jìn)行精確匹配。
案例代碼:
@Controller
public class UserController {/*** 精準(zhǔn)設(shè)置訪問地址 /user/login*/@RequestMapping(value = {"/user/login"})@ResponseBodypublic String login(){System.out.println("UserController.login");return "login success!!";}/*** 精準(zhǔn)設(shè)置訪問地址 /user/register*/@RequestMapping(value = {"/user/register"})@ResponseBodypublic String register(){System.out.println("UserController.register");return "register success!!";}}
1.3 訪問路徑限制請(qǐng)求方式
我們常見熟悉的請(qǐng)求方式有幾種Get、Post、Delete、Put請(qǐng)求,有這么多種類請(qǐng)求,但是我們想要一種指定的請(qǐng)求方式該怎么辦呢?請(qǐng)看源碼中的method。
?限制一種或者多種訪問按照如下
@RestController
@RequestMapping("/vaccinum/appointment")
public class AppointmentController {// TODO:通過設(shè)置參數(shù)中的方法進(jìn)行限制,這里只能通過GET請(qǐng)求才能訪問@RequestMapping(value = "/Hello",method = RequestMethod.GET)public String hello(){System.out.println("Hello");return null;}
// TODO:對(duì)于限制僅允許多個(gè)請(qǐng)求種類只需要使用 "{ , , ...}"花括號(hào)括起來即可@RequestMapping(value = "/Hi",method = {RequestMethod.POST,RequestMethod.GET})public String Hi(){System.out.println("Hi");return null;}
}
那么如果有用戶用了限制以外的訪問請(qǐng)求方式會(huì)怎么樣呢?
答:如果用戶用了限制以外的請(qǐng)求方式就會(huì)報(bào)錯(cuò)---405報(bào)錯(cuò)
注意: 博主這里用的是springboot中的springmvc,如果只是單純的使用springmvc構(gòu)建,那么就會(huì)報(bào)錯(cuò),請(qǐng)?jiān)谒蟹椒ㄉ隙嗉右粋€(gè)注解@ResponseBody。
1.4 進(jìn)階訪問路徑請(qǐng)求注解
前面介紹了通過method參數(shù)進(jìn)行限制requestMapping的請(qǐng)求方式,那么是否有更簡(jiǎn)單的方式實(shí)現(xiàn)限制訪問請(qǐng)求呢?其實(shí)是有的,Spring框架中提供了幾種快速請(qǐng)求種類映射
如下:
// 限制只能用Get@GetMapping("對(duì)應(yīng)路徑")// 限制只能用POST請(qǐng)求@PostMapping("對(duì)應(yīng)路徑")// 限制只能用Delete請(qǐng)求@DeleteMapping("對(duì)應(yīng)路徑")// 限制只能用Put請(qǐng)求@PutMapping("對(duì)應(yīng)路徑")
這幾種就是常用的請(qǐng)求映射,和一般的設(shè)置上method方法的,其實(shí)是等價(jià)的。
// TODO:下面兩行代碼是等價(jià)的@RequestMapping(value = "/Hi",method = RequestMethod.GET)@GetMapping("/Hi")public String Hi(){System.out.println("Hi");return "Hi";}
?注意:如果使用了其中的一種注解,就不能夠進(jìn)行疊加使用了,如果想要疊加使用就需要回到原始的@RequestMapping并且設(shè)置參數(shù)method.{?? , , , ...}
1.5 與WebServlet的區(qū)別
在使用注解@RequestMapping,并且學(xué)習(xí)過JavaWeb的同學(xué),可能會(huì)對(duì)這個(gè)注解感到熟悉,這里的注解和Javaweb中的@WebServlet 注解似乎十分相似。那么他們有什么區(qū)別呢?
最主要的區(qū)別在于@WebServlet 其中的路徑是必須加上"/"的。下面是博主JavaWeb文章中的一個(gè)案例代碼,展示了@WebServlet注解中路徑的配置。
而springmvc中的@RequestMapping的路徑是可以不加" / " 的,這里將" / "全部去掉,再嘗試能否訪問到
二、接收請(qǐng)求數(shù)據(jù)
2.1 請(qǐng)求param參數(shù)
你可能對(duì)param參數(shù)并不太了解,但是其實(shí)日常上網(wǎng)中如果你留意到你的瀏覽器的地址,你會(huì)發(fā)現(xiàn)其實(shí)你經(jīng)常有接觸param這種參數(shù)。
地址?key=value&key2=value2....
例如 常見的百度:當(dāng)你輸入想要搜索的數(shù)據(jù)并點(diǎn)擊確定時(shí)候,就可以看到地址欄的變化
這種就是param參數(shù)。
下面介紹param 和 json參數(shù)的比較:
參數(shù)編碼:
param 類型的參數(shù)會(huì)被編碼為 ASCII 碼。例如,假設(shè)
name=john doe
,則會(huì)被編碼為name=john%20doe
。而 JSON 類型的參數(shù)會(huì)被編碼為 UTF-8。參數(shù)順序:
param 類型的參數(shù)沒有順序限制。但是,JSON 類型的參數(shù)是有序的。JSON 采用鍵值對(duì)的形式進(jìn)行傳遞,其中鍵值對(duì)是有序排列的。
數(shù)據(jù)類型:
param 類型的參數(shù)僅支持字符串類型、數(shù)值類型和布爾類型等簡(jiǎn)單數(shù)據(jù)類型。而 JSON 類型的參數(shù)則支持更復(fù)雜的數(shù)據(jù)類型,如數(shù)組、對(duì)象等。
嵌套性:
param 類型的參數(shù)不支持嵌套。但是,JSON 類型的參數(shù)支持嵌套,可以傳遞更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
可讀性:
param 類型的參數(shù)格式比 JSON 類型的參數(shù)更加簡(jiǎn)單、易讀。但是,JSON 格式在傳遞嵌套數(shù)據(jù)結(jié)構(gòu)時(shí)更加清晰易懂。
這里可以看到,雖然param的使用不如JSON數(shù)據(jù),在于幾個(gè)方面,
- 第一是可讀性較低。
- 第二是不支持復(fù)雜的數(shù)據(jù)傳輸。
- 第三,讀取的參數(shù)是無序的。并不像Json一樣有特定的格式。
- 第四、Param只能存放字符串類型的數(shù)據(jù)。
綜上雖然缺點(diǎn)比較多,但是作為程序員需要能夠處理所有的數(shù)據(jù)類型。所以下面介紹如何讀取Param類型數(shù)據(jù)。
1.直接取值
@RequestMapping("Hello")
// TODO:通過形參直接獲取值public String hello(String name,String sex){System.out.println("Hello");return "Hello";}
通過形參直接獲取值,但是請(qǐng)注意如果使用形參獲取值,那么請(qǐng)求的數(shù)據(jù)名稱必須一 一對(duì)應(yīng)才能正常接收值。
如果不對(duì)應(yīng)的情況下對(duì)應(yīng)的數(shù)據(jù)會(huì)為null
2.通過注解@RequestParam獲取值
前面可以看到如果形參之間如果名稱并不對(duì)應(yīng)的情況下是無法進(jìn)行接受到數(shù)據(jù)的,而springmvc就提供了注解@RequestParam,可以給對(duì)應(yīng)形參起別名,使用案例如下:
@RequestMapping("Hello")
// TODO:通過RequestParam 給形參起別名獲取參數(shù)public String hello(@RequestParam("name") String NAME,@RequestParam("sex") String SEX){System.out.println("name = " + NAME + ", sex = " + SEX);return "name = " + NAME + ", sex = " + SEX;}
可以看到正常返回了,方法中的形參都是SEX,NAME 大寫的形式,而這里使用的是小寫的形式。但是用了該注解需要注意以下幾個(gè)點(diǎn)
1.使用注解后,默認(rèn)對(duì)應(yīng)的參數(shù)必須傳遞,不能為空。如果為空則會(huì)發(fā)生下面的情況
2.可以通過參數(shù)的設(shè)置實(shí)現(xiàn)取消默認(rèn)為空的形式,即允許傳遞對(duì)應(yīng)的數(shù)據(jù)為空的情況。在源碼中可以看到對(duì)應(yīng)參數(shù)。
@RequestMapping("Hello")
// TODO:設(shè)置不需要必須傳遞參數(shù)public String hello(@RequestParam(value = "name") String NAME,@RequestParam(value = "sex",required = false) String SEX){System.out.println("name = " + NAME + ", sex = " + SEX);return "name = " + NAME + ", sex = " + SEX;}
運(yùn)行案例即可看到現(xiàn)在正常訪問了
3.通過設(shè)置默認(rèn)值時(shí)候,必須傳遞的參數(shù)就默認(rèn)不需要
?直接不傳遞參數(shù),直接訪問路徑
3.特殊情況接收值
1.一名多值:即一個(gè)key對(duì)應(yīng)多個(gè)值,例如以下:
key = value1&key = value2key = value3...
對(duì)于這種多選框,提交的數(shù)據(jù)的時(shí)候一個(gè)key對(duì)應(yīng)多個(gè)值,我們可以使用集合進(jìn)行接收!
案例代碼:
/*** 前端請(qǐng)求: http://localhost:8080/param/mul?hbs=吃&hbs=喝** 一名多值,可以使用集合接收即可!但是需要使用@RequestParam注解指定*/@GetMapping(value="/mul")@ResponseBodypublic Object mulForm(@RequestParam List<String> hbs){System.out.println("hbs = " + hbs);return hbs;}
2.實(shí)體接收
Spring MVC 是 Spring 框架提供的 Web 框架,它允許開發(fā)者使用實(shí)體對(duì)象來接收 HTTP 請(qǐng)求中的參數(shù)。通過這種方式,可以在方法內(nèi)部直接使用對(duì)象的屬性來訪問請(qǐng)求參數(shù),而不需要每個(gè)參數(shù)都寫一遍。下面是一個(gè)使用實(shí)體對(duì)象接收參數(shù)的示例:
定義一個(gè)用于接收參數(shù)的實(shí)體類:
public class User {private String name;private int age = 18;// getter 和 setter 略
}
在控制器中,使用實(shí)體對(duì)象接收,示例代碼如下:
@Controller
@RequestMapping("param")
public class ParamController {@RequestMapping(value = "/user", method = RequestMethod.POST)@ResponseBodypublic String addUser(User user) {// 在這里可以使用 user 對(duì)象的屬性來接收請(qǐng)求參數(shù)System.out.println("user = " + user);return "success";}
}
注意:在上述代碼中,將請(qǐng)求參數(shù)name和age映射到實(shí)體類屬性上!要求屬性名必須等于參數(shù)名!否則無法映射!
2.2 請(qǐng)求路徑參數(shù)
請(qǐng)求路徑參數(shù),可能沒有聽說過。其實(shí)格式類似下面
/user/name/password
上述格式的一個(gè)案例:/user/root/123456
其實(shí)就是name = root ,? password = 123456.
知道請(qǐng)求路徑的格式了,那么應(yīng)該如何進(jìn)行接收呢?其實(shí)springmvc中為路徑類提供了專門的注解。可以看到以下案例:
/*** 動(dòng)態(tài)路徑設(shè)計(jì): /user/{動(dòng)態(tài)部分}/{動(dòng)態(tài)部分} 動(dòng)態(tài)部分使用{}包含即可! {}內(nèi)部動(dòng)態(tài)標(biāo)識(shí)!* 形參列表取值: @PathVariable Long id 如果形參名 = {動(dòng)態(tài)標(biāo)識(shí)} 自動(dòng)賦值!* @PathVariable("動(dòng)態(tài)標(biāo)識(shí)") Long id 如果形參名 != {動(dòng)態(tài)標(biāo)識(shí)} 可以通過指定動(dòng)態(tài)標(biāo)識(shí)賦值!** 訪問測(cè)試: /param/user/1/root -> id = 1 uname = root*/
@GetMapping("/user/{id}/{name}")
@ResponseBody
public String getUser(@PathVariable Long id, @PathVariable("name") String uname) {System.out.println("id = " + id + ", uname = " + uname);return "user_detail";
}
?其中有幾處與之前不同,如下:
1.動(dòng)態(tài)路徑設(shè)計(jì): /user/{動(dòng)態(tài)部分}/{動(dòng)態(tài)部分}
2.參數(shù):參數(shù)改為了@PathVariable
實(shí)踐一下:
@RequestMapping("Hello/{name}/{sex}")public String hello(@PathVariable String name, @PathVariable String sex) {System.out.println("name = " + name + ", sex = " + sex);return "name = " + name + ", sex = " + sex;}
注意:
@PathVariable
注解中的參數(shù)名稱應(yīng)該和@RequestMapping
中的路徑變量名稱保持一致。由于 Java 是大小寫敏感的,因此在@PathVariable
注解中使用大寫的參數(shù)名可能會(huì)導(dǎo)致匹配失敗。
2.3 請(qǐng)求Json數(shù)據(jù)參數(shù)格式
??????? 后端在不引用其它庫的情況下進(jìn)行接收json數(shù)據(jù)效率會(huì)十分低下或者直接報(bào)錯(cuò),因?yàn)?strong>json數(shù)據(jù)是前端的一種實(shí)體對(duì)象。而后端并不存在該實(shí)體對(duì)象,所以進(jìn)行接收的時(shí)候可能會(huì)出現(xiàn)問題。所以為了接收json格式字符串。通常需要引入工具類或者庫。這里采用了阿里巴巴的fastjson的jar包以實(shí)現(xiàn)接收json格式的數(shù)據(jù)。
在項(xiàng)目中pom.xml中引入jar包
<!-- 阿里巴巴處理json的jar包--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.70</version></dependency>
fastjson的功能:
解析JSON:
parseObject(String text)
:將JSON格式的字符串解析為JSONObject。parseArray(String text)
:將JSON格式的字符串解析為JSONArray。生成JSON:
toJSONString(Object object)
:將Java對(duì)象序列化為JSON字符串。toJSONString(Object object, SerializerFeature... features)
:支持傳入序列化特性,例如SerializerFeature.PrettyFormat
用于格式化輸出。序列化特性:
SerializerFeature.PrettyFormat
:格式化輸出JSON。SerializerFeature.WriteMapNullValue
:是否輸出值為null的字段。SerializerFeature.WriteDateUseDateFormat
:使用日期格式化輸出日期。反序列化特性:
Feature.AllowUnQuotedFieldNames
:允許非引號(hào)字段名。Feature.AllowSingleQuotes
:允許單引號(hào)包裹的字符串。自定義序列化和反序列化:
- 可以通過實(shí)現(xiàn)特定接口或注解來實(shí)現(xiàn)對(duì)特定類型的自定義序列化和反序列化。
特定對(duì)象處理:
TypeReference
:用于處理泛型類型的對(duì)象。
使用fastjson接收json數(shù)據(jù)案例:
@RequestMapping("/JsonTest")
// TODO:通過設(shè)置響應(yīng)體注解@RequestBody實(shí)現(xiàn)接收json數(shù)據(jù)public String Json(@RequestBody JSONObject jsonObject){System.out.println("成功接受到JSON數(shù)據(jù)");return "返回接收到的JSON數(shù)據(jù)為:"+jsonObject.toJSONString();}
?博主這里使用APIFOX軟件的json數(shù)據(jù)傳輸,進(jìn)行傳遞
三、接收其它類型數(shù)據(jù)
3.1 接收cookie參數(shù)
?接收Cookie參數(shù)時(shí)候,需要確保對(duì)應(yīng)的CookieName才能獲取到對(duì)應(yīng)的cookie。而Cookie一般通過注解@CookieValue("CookieName") 進(jìn)行獲取。看以下案例
// 設(shè)置cookie @RequestMapping("/save")public String CookieTest(HttpServletResponse servletResponse){Cookie cookie = new Cookie("CookieTestName","AlphaMilk");servletResponse.addCookie(cookie);System.out.println("成功設(shè)置好cookie");return "設(shè)置cookie成功";}// 獲取cookie@RequestMapping("/GetCookie")public String GetCookie(@CookieValue("CookieTestName") String value){return "獲取到的Cookie值為"+value;}
進(jìn)入設(shè)置,設(shè)置cookie
再進(jìn)行訪問cookie對(duì)應(yīng)的資源
3.2 接收請(qǐng)求頭數(shù)據(jù)
由于請(qǐng)求頭中有許多的數(shù)據(jù),所以這里展示接收請(qǐng)求HOST(Host字段通常是指代目標(biāo)服務(wù)器的域名或主機(jī)名)字段的內(nèi)容,其它獲取方式都是同理。
而獲取請(qǐng)求頭的方式也很簡(jiǎn)單,通過注解@RequestHeader("HeadName") 即可
?案例:
@RequestMapping("/Header")public String GetHead(@RequestHeader("HOST") String value){return "獲取到的HOST值為"+value;}
3.3 原生Api對(duì)象操作
下表描述了支持的控制器方法參數(shù)
參數(shù)類型 | 描述 |
---|---|
jakarta.servlet.ServletRequest , jakarta.servlet.ServletResponse | 請(qǐng)求/響應(yīng)對(duì)象 |
jakarta.servlet.http.HttpSession | 強(qiáng)制存在會(huì)話。因此,這樣的參數(shù)永遠(yuǎn)不會(huì)為 null 。 |
java.io.InputStream , java.io.Reader | 用于訪問由 Servlet API 公開的原始請(qǐng)求正文。 |
java.io.OutputStream , java.io.Writer | 用于訪問由 Servlet API 公開的原始響應(yīng)正文。 |
@PathVariable | 接收路徑參數(shù)注解 |
@RequestParam | 用于訪問 Servlet 請(qǐng)求參數(shù),包括多部分文件。參數(shù)值將轉(zhuǎn)換為聲明的方法參數(shù)類型。 |
@RequestHeader | 用于訪問請(qǐng)求標(biāo)頭。標(biāo)頭值將轉(zhuǎn)換為聲明的方法參數(shù)類型。 |
@CookieValue | 用于訪問 Cookie。Cookie 值將轉(zhuǎn)換為聲明的方法參數(shù)類型。 |
@RequestBody | 用于訪問 HTTP 請(qǐng)求正文。正文內(nèi)容通過使用 HttpMessageConverter 實(shí)現(xiàn)轉(zhuǎn)換為聲明的方法參數(shù)類型。 |
java.util.Map , org.springframework.ui.Model , org.springframework.ui.ModelMap | 共享域?qū)ο?#xff0c;并在視圖呈現(xiàn)過程中向模板公開。 |
Errors , BindingResult | 驗(yàn)證和數(shù)據(jù)綁定中的錯(cuò)誤信息獲取對(duì)象! |
獲取原生對(duì)象示例:
/*** 如果想要獲取請(qǐng)求或者響應(yīng)對(duì)象,或者會(huì)話等,可以直接在形參列表傳入,并且不分先后順序!* 注意: 接收原生對(duì)象,并不影響參數(shù)接收!*/
@GetMapping("api")
@ResponseBody
public String api(HttpSession session , HttpServletRequest request,HttpServletResponse response){String method = request.getMethod();System.out.println("method = " + method);return "api";
}
文章整合:
一、訪問路徑(@RequestMapping)
1.1 訪問路徑注解作用域
- @RequestMapping注解用于定義控制器處理請(qǐng)求的方法,可在類級(jí)別和方法級(jí)別上使用。
1.5 路徑精準(zhǔn)(模糊)匹配
- 可以通過@RequestMapping的value屬性設(shè)置精準(zhǔn)匹配的路徑,或者通過使用ant風(fēng)格的路徑模式實(shí)現(xiàn)模糊匹配。
1.2 訪問路徑限制請(qǐng)求方式
- @RequestMapping注解的method屬性可以限制請(qǐng)求的HTTP方法類型,確保方法只處理特定類型的請(qǐng)求。
1.3 進(jìn)階訪問路徑請(qǐng)求注解
- 除了@RequestMapping,還可以使用@GetMapping、@PostMapping、@PutMapping等注解來更直觀地表達(dá)請(qǐng)求的HTTP方法類型。
1.4 與WebServlet的區(qū)別
- @RequestMapping是Spring MVC的注解,而@WebServlet是Servlet 3.0規(guī)范中的注解。@RequestMapping相比@WebServlet功能更為強(qiáng)大,支持更多的請(qǐng)求映射和參數(shù)配置。
二、接收請(qǐng)求數(shù)據(jù)
2.1 請(qǐng)求param參數(shù)
- 使用@RequestParam注解可以獲取請(qǐng)求中的參數(shù),并映射到方法的參數(shù)上。
2.2 請(qǐng)求路徑參數(shù)
- 通過@PathVariable注解可以接收RESTful風(fēng)格的路徑參數(shù)。
2.3 請(qǐng)求Json數(shù)據(jù)參數(shù)格式
- 使用@RequestBody注解可以將請(qǐng)求中的JSON數(shù)據(jù)映射到方法的參數(shù)對(duì)象上。
三、接收其他類型數(shù)據(jù)
3.1 接收cookie參數(shù)
- 使用@CookieValue注解可以獲取請(qǐng)求中的cookie數(shù)據(jù)。
3.2 接收請(qǐng)求頭數(shù)據(jù)
- 通過@RequestHeader注解可以獲取請(qǐng)求的頭部信息。
3.3 原生Api對(duì)象操作
- 可以直接使用Servlet API中的對(duì)象,如HttpServletRequest、HttpServletResponse等,來操作原生的請(qǐng)求和響應(yīng)數(shù)據(jù)。