从http请求中 获得请求参数 应该调用哪个方法
发布网友
发布时间:2022-04-23 09:51
我来回答
共2个回答
热心网友
时间:2022-04-07 07:16
HTTP请求方式有两种,一种是GET方式,请求参数会用“?”作为分隔符跟在请求资源后面;另一种是POST方式,请求参数放在了最后面的位置。
服务器监听到浏览器的链接,首先将HTTP请求信息保存下来,再进行解析。
// 请求信息的输入流
private InputStream input;
//获得HTTP请求信息,并解析出请求使用的是GET还是POST,然后调用相应的处理方法进行处理
public void parseInput(){
byte [] b = new byte[1024];
try {
input.read(b);
} catch (IOException e) {
LogInfo.error("读取请求信息出错"+e.getMessage());
return;
}
String inputStr = new String(b);
String type = inputStr.substring(0,inputStr.indexOf(" "));
if("GET".equals(type)){
parseGetString(inputStr);
}
else{
parsePostString(inputStr);
}
}
//路径信息,http://localhost:8088/CCB?account=abc&pwd=123,其中/CCB表示pathInfo
private String pathInfo;
//请求资源路径,pathInfo中最后一个斜杆后米啊的字符串,如/bank/CCB,其中/CCB表示urlPattern
private String urlPattern;
//请求参数,在Get请求中第一个问号后面的字符串,如account=abc&pwd=123
private String queryStr;
//解析GET请求
public void parseGetString(String getStr){
String allStr = getStr;
String info = allStr.substring(allStr.indexOf("/"),allStr.indexOf(" HTTP"));
int end = info.indexOf("?");
if(end == -1){
pathInfo = info;
}else{
pathInfo = info.substring(0,end);
queryStr = info.substring(end + 1);
}
urlPattern = pathInfo.substring(pathInfo.lastIndexOf("/"));
parseQueryInfo(queryStr);
}
//解析POST请求
public void parsePostString(String postStr){
String qStr = postStr.trim();
pathInfo = postStr.substring(postStr.indexOf("/"),postStr.indexOf(" HTTP"));
urlPattern = pathInfo.substring(pathInfo.lastIndexOf("/"));
queryStr = qStr.substring(qStr.lastIndexOf(System.getProperty("line.separator"))).trim();
parseQueryInfo(queryStr);
}
解析出请求资源路径和请求参数就可以找到对应的资源发送给浏览器或根据请求参数做相应的处理,再将资源发送回去。
热心网友
时间:2022-04-07 08:34
PHP的话可以通过$_GET,$_POST 和 $_COOKIE 获取。
从http请求中 获得请求参数 应该调用哪个方法
服务器监听到浏览器的链接,首先将HTTP请求信息保存下来,再进行解析。// 请求信息的输入流 private InputStream input;//获得HTTP请求信息,并解析出请求使用的是GET还是POST,然后调用相应的处理方法进行处理 public void parseInput(){ byte [] b = new byte[1024];try { input.read(b);} catch...
静态ip - StormProxies
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP纯净高匿;2、覆盖全球200+的国家与地区,超7000万住宅IP。3、高可靠性,24小时稳定运行,平均99.99%的可用率;4、性价比更高,便宜好用,单个IP也能享受最优价格,没有额外费用;5、易于使用,支持HTTP/HTTPS/SOCKS5协议,提供多种API参数,网络集成更快捷;6、客服全天在线为您排忧解难,并可根据您的业务需求制定更合适的代理…StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP纯净高匿;2、覆盖全球20...
[Frombody]、[FromForm]傻傻分不清?ASP.NET Core获取请求参数方式...
从Body获取参数,通常通过表单提交或AJAX提交数据。使用Request.Body对象,它是一个Stream,保存了请求的body数据。要读取这个对象,必须先调用Request.EnableBuffering()方法。使用[FromBody]可以自动将body数据反序列化为模型,但注意请求的Content-Type必须是application/json。使用[FromForm]则要求Content-Type...
HTTP请求中POST和GET方法都有哪些区别
一般编程都用POST方式。
Request的getParameter和getAttribute方法的区别
(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法 (2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码:authenticate.jsp 或者: 请输入用户姓名: 在authentica...
常用的http接口调用方法
探索HTTP接口调用方法,掌握高效编码之道。GET请求调用,无参数场景。GET无参的核心代码简洁,直接封装URL,发起请求获取数据。统一GET请求的公共方法,封装URL和参数,简化重复编码。GET请求携带参数,更复杂场景。GET有参核心请求代码,URL拼接参数,请求时提供详细信息。统一GET请求的公共方法,优化参数处理,...
springboot获取请求参数的几种方式可选参数使用
注意:HttpServletRequest 请求中的 body 内容仅能调用 request.getInputStream(), request.getReader()和request.getParameter("key") 方法读取一次,重复读取会报 java.io.IOException: Stream closed 异常。1.get请求获取全部参数 2、可选参数 RequestMapping的可选参数 使用@requesMapping标注的处理函数...
Postman接口测试之POST、GET请求方法
Postman接口测试:POST和GET请求方法详解Postman 是一款常用的接口测试工具,其核心功能包括发送HTTP请求,如POST和GET。这两种方法在接口调用中扮演着关键角色:1. GET请求:用于获取指定资源的信息,常用于接收数据,例如用户注册接口:功能说明:用户注册请求URL:demo/web-member/auth/me...请求方式:GET...
注解postmapping作
在Web开发中,注解postmapping是一种关键的工具,它扮演着将HTTP POST请求与后端处理程序方法之间建立连接的角色。这种注解允许我们直接在代码中指定,当接收到一个POST请求时,应该调用哪个方法来处理数据。通过这种方式,我们无需在配置文件中繁琐地设置路由,而是通过简洁的注解方式,提高了代码的可读性和...
Request的getParameter和getAttribute方法的区别
(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法 (2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码:authenticate.jsp 或者: 请输入用户姓名: 在authenti...
HTTP中POST提交数据的四种方式详解
1. `application/x-www-form-urlencoded`:这是POST请求的默认方式,对应的请求头中的Content-Type为`application/x-www-form-urlencoded`。通常用于提交键值对形式的参数。2. `multipart/form-data`:这种提交方式主要用于上传文件,如图片或文件。它通过生成一个boundary字符串作为分界线,将表单内容分割...