`
Franciswmf
  • 浏览: 797339 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

解析客户端请求信息Headers

 
阅读更多
ANDROID客户端请求
{Accept=[application/json], accept-encoding=[gzip,deflate], accept-language=[zh-CN,en-US;q=0.8], connection=[keep-alive], Content-Length=[51], content-type=[application/json;charset=UTF-8], host=[10.254***:8888], origin=[http://www.***.cn], referer=[http://www.***.cn/***/index.html?showAcitivityIcon=0], user-agent=[Mozilla/5.0 (Linux; Android 4.4.2; PE-TL20 Build/Huawei***) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36], x-requested-with=[com.***], x-wap-profile=[http://wap1.huawei.com/uaprof/HUAWEI_***_UAProfile.xml]}

IOS客户端请求
{Accept=[application/json], accept-encoding=[gzip, deflate], accept-language=[zh-Hans-CN;q=1], connection=[close], Content-Length=[68], content-type=[application/json], host=[www.***.cn], user-agent=[***/2.5.0 (iPhone; iOS 10.0.2; Scale/2.00)], x-forwarded-for=[10.254***], x-real-ip=[10.254***]}

解析Headers

	public String getHeaders(HttpServletRequest request,String type){
		String flag="";
		Map<String, String> map=new HashMap<String, String>();
		Enumeration<String> headers=request.getHeaderNames();
		while (headers.hasMoreElements()) {
			String key=(String) headers.nextElement();
			String value=request.getHeader(key);
			map.put(key, value);
			System.out.println("输出key:"+key);
		}
		if(!map.isEmpty()){
			flag=map.get(type);
			if(Utils.isNotBlank(flag)){
				if(flag.toUpperCase().contains(Enum.DEVICE_TYPE_ANDROID.getCode())){
					flag=Enum.DEVICE_TYPE_ANDROID.getCode();
				}else if(flag.toUpperCase().contains(Enum.DEVICE_TYPE_IOS.getCode())){
					flag=Enum.DEVICE_TYPE_IOS.getCode();
				}else{
					flag=Enum.DEVICE_TYPE_UNKNOWN.getCode();
				}
			}
		}
		System.out.println("结果:"+flag);
		return flag;
	}
分享到:
评论

相关推荐

    详解nginx请求头数据读取流程

    当请求行解析完成后,Nginx会调用`ngx_http_process_request_headers()`方法来处理请求头。 `ngx_http_process_request_headers()`是请求头读取的主要流程。这个方法的主要任务是从输入缓冲区中读取数据,直到找到...

    C#获取目标网址http头信息,比如状态码等等信息

    HTTP头由一系列键值对组成,其中包含了服务器与客户端之间交互的信息。状态码是HTTP头的一个关键组成部分,它以三位数字表示请求的处理结果,例如200表示成功,404表示未找到,500表示服务器内部错误等。 在C#中,...

    C#的http发送post和get请求源码

    在C#编程中,HTTP(超文本传输协议)是用于客户端和服务器之间通信的主要协议,主要涉及GET和POST两种常见的请求方法。本文将详细介绍如何在C#中实现这两种请求,并结合给定的文件名,推测这是一个简单的C#桌面应用...

    HTTP简单的客户端与服务器交互

    例如:“GET /index.html HTTP/1.1”,表示客户端请求获取服务器上的/index.html资源,使用HTTP 1.1版本。 2. 请求头部(Headers):包含客户端的附加信息,比如Accept字段指明客户端可以接收的数据类型,User-...

    JSP获取客户端的浏览器和操作系统信息

    HTTP请求头信息(Request Headers)是客户端发送给服务器的一系列关键信息,用于描述客户端环境、请求方式等。在JSP中,可以通过`HttpServletRequest`接口提供的方法来访问这些信息。例如,`request.getHeader("User...

    爬取客户端微博信息--源码

    2. **API调用**:获取到微博API的调用接口,构造合适的URL,结合headers和参数,向服务器发送请求。 3. **数据解析**:接收到服务器返回的数据后,使用BeautifulSoup或lxml解析HTML,提取出需要的信息,如用户ID、...

    http客户端代码

    例如,设置User-Agent表示客户端的身份,Authorization字段用于传递身份验证信息,Content-Type指定请求体的数据类型。 ```python headers = { 'User-Agent': 'MyApp/1.0', 'Authorization': 'Bearer your_token'...

    vs2019下使用winInet实现的http客户端

    对于多部分响应,可能需要解析边界以正确处理每个部分。 8. **错误处理**: WinInet API的每个函数都可能返回错误代码,需要使用`InternetGetLastResponseInfo()`检查错误,并根据需要采取相应措施。 9. **清理...

    Angular客户端请求Rest服务跨域问题的解决方法

    本文将详细解析Angular客户端请求Rest服务时遇到的跨域问题及其解决方案。 首先,我们需要理解什么是跨域。跨域是指浏览器的同源策略限制了JavaScript从一个源(协议+域名+端口)加载资源到另一个源。当Angular应用...

    JSP获取HTTP header信息(request)例子

    - `request.getHeader("Host")`: 获取客户端请求的主机名。 - `request.getHeader("Referer")`: 获取上一个页面的URL。 - `request.getHeader("Accept-Language")`: 获取客户端可接受的语言。 - `request....

    fiddler解析http协议

    - **Response消息**:由服务器响应客户端请求,结构类似Request消息,但包含状态码、响应头及响应体。 - **状态码**:三位数字表示响应的状态,如200(成功)、404(未找到)等。 - **响应头**:包含多个键值对,...

    http request 解析

    2. **请求头(Headers)**:包含多个键值对,如User-Agent表示客户端信息,Accept表示接受的数据类型等。 3. **空行**:请求头和请求体之间的分隔线,通常为空行。 4. **请求体(Body)**:对于POST请求,请求体中...

    开源项目-carlmjohnson-get-headers.zip

    开源项目-carlmjohnson-get-headers.zip 是一个由开发者carlmjohnson创建的开源项目,主要功能是使用Go语言编写的一个简单工具,用于展示通过GET方法请求URL时返回的HTTP头信息。这个项目对于理解HTTP协议、学习Go...

    postman客户端

    2. **请求参数**:Postman允许用户在请求头(Headers)中添加自定义字段,如Content-Type定义数据格式,Authorization设置认证信息。同时,可以在URL参数、查询参数或请求体中添加数据,支持JSON、XML等多种数据格式...

    WebAPI接收图片 + 控制台程序模拟客户端提交图片上传请求

    在上面的代码中,我们检查了请求是否包含Multipart/form-data内容,然后使用`MultipartMemoryStreamProvider`解析文件内容。我们获取第一个文件,从中提取文件名和流,这代表了上传的图片。你可以选择将图片流保存到...

    POST实例 模仿post请求

    `headers`定义了请求头,`body`包含了要发送的数据。然后,我们使用`.then`处理返回的响应,并将其转换为JSON格式。 在C#中,可以使用`HttpClient`类来模仿POST请求,如下所示: ```csharp using System.Net.Http;...

    全面解析HTTP协议

    HTTP是一个无状态的协议,这意味着每次客户端发起请求到服务器,服务器处理请求并返回响应后,连接就会关闭,不会保留任何关于先前交互的信息。这种设计简化了服务器端的复杂性,但同时也限制了某些特定应用场景,...

    项目中axios发送 post 请求 数据类型为Form Data 数据时踩的坑(设置了请求头信息之后还未成功 但是发送过去的类型不对)解决方法

    那么第一件事情设置请求头信息,,现在用的很多封装的ajax库都可以设置请求头信息 这里以axios为例 axios({ url:this.dialog.add.upload_url, method:'post', data, headers:{ 'Content-Type':'application/x-...

Global site tag (gtag.js) - Google Analytics