Http上传下载输入输出流总结
2017-01-11 14:59
429 查看
获取httpServletRequest中获取Http请求body的方法
注意:
request.getInputStream(); request.getReader();和request.getParameter("key");这三个函数中任何一个函数执行一次后(可正常读取body数据),之后再执行就无效了。
HttpServletRequest对象的方法:
getRequestURI方法返回请求行中的资源名部分。
getQueryString 方法返回请求行中的参数部分。
getRemoteAddr方法返回发出请求的客户机的IP地址
getRemoteHost方法返回发出请求的客户机的完整主机名
getRemotePort方法返回客户机所使用的网络端口号
getLocalAddr方法返回WEB服务器的IP地址。
getLocalName方法返回WEB服务器的主机名
getMethod得到客户机请求方式
getHeader(string name)方法
getHeaders(String name)方法
getHeaderNames方法
getParameterValues(String name)方法
getParameterNames方法
getParameterMap方法
Map map = request.getParameterMap();
Set keySet = map.keySet();
for (String key : keySet) {
String[] values = (String[]) map.get(key);
for (String value : values) {
System.out.println(key + "=" + value);
}
}
Enumeration em = request.getHeaderNames();
while (em.hasMoreElements()) {
String name = (String) em.nextElement();
String value = request.getHeader(name);
System.out.println(name + "=" + value);
}
//字符串读取 public String charReader(HttpServletRequest req) throws IOException{ BufferedReader reader=req.getReader(); String str,data=""; while((str=reader.readLine())!=null){ data+=str; } return data; } //二进制读取 public void binaryReader(HttpServletRequest req) throws IOException{ int len=request.getContentLength(); ServletInputStream input=request.getInputStream(); byte buffer[]=new byte[len]; input.read(buffer,0,len); //写入到文件 // int numRead; // File file=new File("D:\\data\\test.txt"); // FileOutputStream fos = new FileOutputStream(file, true); // byte[] buf = new byte[1024 * 100]; // ServletInputStream input = request.getInputStream(); // while ((numRead = input.read(buf)) != -1) { // fos.write(buf, 0, numRead); // } }
注意:
request.getInputStream(); request.getReader();和request.getParameter("key");这三个函数中任何一个函数执行一次后(可正常读取body数据),之后再执行就无效了。
HttpServletRequest对象的方法:
1. 获得客户机信息
getRequestURL方法返回客户端发出请求时的完整URL。getRequestURI方法返回请求行中的资源名部分。
getQueryString 方法返回请求行中的参数部分。
getRemoteAddr方法返回发出请求的客户机的IP地址
getRemoteHost方法返回发出请求的客户机的完整主机名
getRemotePort方法返回客户机所使用的网络端口号
getLocalAddr方法返回WEB服务器的IP地址。
getLocalName方法返回WEB服务器的主机名
getMethod得到客户机请求方式
2.获得客户机请求头
getHeader(string name)方法getHeaders(String name)方法
getHeaderNames方法
3. 获得客户机请求参数(客户端提交的数据)
getParameter(name)方法getParameterValues(String name)方法
getParameterNames方法
getParameterMap方法
例子
//得到请求的参数Map,注意map的value是String数组类型Map map = request.getParameterMap();
Set keySet = map.keySet();
for (String key : keySet) {
String[] values = (String[]) map.get(key);
for (String value : values) {
System.out.println(key + "=" + value);
}
}
Enumeration em = request.getHeaderNames();
while (em.hasMoreElements()) {
String name = (String) em.nextElement();
String value = request.getHeader(name);
System.out.println(name + "=" + value);
}
相关文章推荐
- C#网络编程——第一篇 基础之进程线程
- HTTPS
- 深度堆栈网络训练Python代码
- 通常每个套接字地址(协议/网络地址/端口)只允许使用一次 apache24安装443端口占用
- http://www.cnblogs.com/solverpeng/p/5830931.html
- 深度学习基础
- C#后台发送HTTP请求
- CNN(卷积神经网络)
- CentOS设置网络访问代理
- 实时网络游戏中玩家延时与服务器同步
- 使用CNN神经网络进行图片识别分类
- 修改公网网卡,子网或网络掩码信息
- TCP的数据传输小结
- TCP的成块数据流
- HTTP常见Content-Type比较
- 80老翁谈人生(339):制定《网络安全法》的理论依据
- WebService客户端——HttpClient调用WebService
- 利用MacBook Air入侵无线网络
- Win7开启共享无线网络
- 如何用网络管理软件灵活管理复杂庞大的网络