国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java后端獲取接口訪問端是PC還是手機(jī)

這篇具有很好參考價(jià)值的文章主要介紹了Java后端獲取接口訪問端是PC還是手機(jī)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1測試用代碼

項(xiàng)目中遇到的, 公司的開發(fā)不是前后端分離的模式, html頁面是后端返回的, 所以頁面需要根據(jù)客戶端是PC還是手機(jī)調(diào)整布局;
試了一下在后端獲取客戶端類型, 方法是用請(qǐng)求報(bào)文里的 headers中的 user-agent 信息;
起初也不知道, 于是做了以下試驗(yàn)代碼

@GetMapping(value = "/test")
public ModelAndView CheckLoginForModuleUse(HttpServletRequest req){

    System.out.println("=======================訪問端信息=======================");
    
    Enumeration<String> headerNames = req.getHeaderNames();
    while (headerNames.hasMoreElements()) {
        String key = headerNames.nextElement();
        System.out.print(key);
        System.out.print("=");
        System.out.println(req.getHeader(key));
    }
    
    System.out.println("=======================END=======================");
    
}

2 收集到的日志

部署并嘗試用多種客戶端訪問后, 有以下日志產(chǎn)生, 本次使用的客戶端有:
1 谷歌瀏覽器 windows
2 Edge瀏覽器 windows
3 iPhone手機(jī)App, (App是客戶的app, 在app內(nèi)部訪問接口)
4 Android手機(jī)App
5 PC端App
比較遺憾沒有 macbook 試試;

eg.1 明顯這個(gè)客戶端是 iphone14

=======================訪問端信息=======================
host=abc.def.com.cn
accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
upgrade-insecure-requests=1
cookie=cookiesession1=678B28FB01234ABCDEFGHIJKLMNO798D
user-agent=Qing/0.9.91;iOS 15.5;Apple;iPhone14,4;deviceId:354a8216-d7b0-41f8-9c74-50ea4771c68e;deviceName:iPhone%20%284%29;clientId:38881;os:iOS 15.5;brand:Apple;model:iPhone14,4;oem:bgy;lang:zh-CN;fontNum:0;Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;redVer:1.0;V9BridgeProtocalNoDoubleSlash;ver:1.0.21;
accept-language=zh-CN
accept-encoding=gzip, deflate
connection=keep-alive
=======================END=======================

eg.2 iphone14

=======================訪問端信息=======================
host=abc.def.com.cn
accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
upgrade-insecure-requests=1
cookie=JSESSIONID=2E49BEB3B58920C94C057B74F595FDF6; dluinfoforsec=8PdlRxrxgqzc8+CJUTqV4T69qFarxTwudltN6pNW6M8r7Y+HNzfi262B8JEkzGH0; cookiesession1=678B28FB01234ABCDEFGHIJKLMNO798D
user-agent=Qing/0.9.91;iOS 15.5;Apple;iPhone14,4;deviceId:354a8216-d7b0-41f8-9c74-50ea4771c68e;deviceName:iPhone%20%284%29;clientId:38881;os:iOS 15.5;brand:Apple;model:iPhone14,4;oem:bgy;lang:zh-CN;fontNum:0;Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;redVer:1.0;V9BridgeProtocalNoDoubleSlash;ver:1.0.21;
accept-language=zh-CN
accept-encoding=gzip, deflate
connection=keep-alive
=======================END=======================

eg.3 iphone10

=======================訪問端信息=======================
host=abc.def.com.cn
accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
upgrade-insecure-requests=1
user-agent=Qing/0.9.91;iOS 13.6.1;Apple;iPhone10,1;deviceId:a84d5a21-b419-4e97-8fbf-7adedf439687;deviceName:The%20Mountain%20Echoes;clientId:38881;os:iOS 13.6.1;brand:Apple;model:iPhone10,1;oem:bgy;lang:zh-CN;fontNum:0;Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;redVer:1.0;V9BridgeProtocalNoDoubleSlash;ver:1.0.21;
accept-language=zh-CN
accept-encoding=gzip, deflate
connection=keep-alive
x-forwarded-for=144.0.23.4
x-real-ip=144.0.23.4
x-forwarded-proto=http
=======================END=======================

eg.4 Android

=======================訪問端信息=======================
host=abc.def.com.cn
connection=keep-alive
upgrade-insecure-requests=1
user-agent=Qing/0.9.86;Android 10.1.8;OPPO;PEDM00;deviceId:80fa56ba-540f-33a8-bdcc-adea579cbf8b;deviceName:OPPO PEDM00;clientId:10201;;os:Android 10.1.8;brand:OPPO;model:PEDM00;lang:zh-CN;ver:1.0.11;redVer:1.0;Mozilla/5.0 (Linux; Android 12; PEDM00 Build/RKQ1.211103.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/97.0.4692.98 Mobile Safari/537.36
accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
x-requested-with=cn.com.happypace.dom1
accept-encoding=gzip, deflate
accept-language=zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
cookie=JSESSIONID=A8C16AA7DD65694338DF1D7E84530A51; ASP.NET_SessionId=k3wpql1rj4ifx4nrabo4bgux; dluinfoforsec=8PdlRxrxgqzc8+CJUTqV4T69qFarxTwudltN6pNW6M8r7Y+HNzfi262B8JEkzGH0
x-forwarded-for=223.104.69.30
x-real-ip=223.104.69.30
x-forwarded-proto=http
=======================END=======================

eg.5 有Chrome字樣, 分不清是 chrome 還是 edge

=======================訪問端信息=======================
host=10.10.166.37
connection=keep-alive
upgrade-insecure-requests=1
user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding=gzip, deflate
accept-language=zh-CN,zh;q=0.9
cookie=userInfo=YWRtaW58YWQxYTE5OTEtMzY4Mi00MDUzLWJiNDYtYTg5MGM1Mjk4NmZlfHRydWU=; JSESSIONID=D3093E40172B09AF138EE6A729EE653C; dlcurbigdeptid=dlwwr; dluinfoforchangeuser=48vmoGkU7M78j2IOOsDD1A==; dluinfoforsec=hCdwq8mRUhOZMaTsxXxB/RZCsLjdOYUudTueNHq3/AwdBdHDeq7+gtiuzXEUVjZj
=======================END=======================

eg.6 有Chrome字樣, 分不清是 chrome 還是 edge

=======================訪問端信息=======================
host=abc.def.com.cn
connection=keep-alive
upgrade-insecure-requests=1
user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding=gzip, deflate
accept-language=zh-CN,zh;q=0.9
cookie=userInfo=YWRtaW58YWQxYTE5OTEtMzY4Mi00MDUzLWJiNDYtYTg5MGM1Mjk4NmZlfHRydWU=; JSESSIONID=A596B4209B9DFCD1726C1224ED8F6FC1; Hm_lvt_5c138214afe064d1f739fb9535e08b20=1646808109; dlcurbigdeptid=dlwwr; dluinfoforchangeuser=48vmoGkU7M78j2IOOsDD1A==; dluinfoforsec=hCdwq8mRUhOZMaTsxXxB/RZCsLjdOYUudTueNHq3/AwdBdHDeq7+gtiuzXEUVjZj
x-forwarded-for=144.0.23.4
x-real-ip=144.0.23.4
x-forwarded-proto=http
=======================END=======================

eg.7 有Chrome字樣, 分不清是 chrome 還是 edge

=======================訪問端信息=======================
host=abc.def.com.cn
connection=keep-alive
upgrade-insecure-requests=1
user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.26
accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding=gzip, deflate
accept-language=zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
x-forwarded-for=144.0.23.4
x-real-ip=144.0.23.4
x-forwarded-proto=http
=======================END=======================

eg.8 有Chrome字樣, 分不清是 chrome 還是 edge

=======================訪問端信息=======================
host=abc.def.com.cn
connection=keep-alive
upgrade-insecure-requests=1
user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding=gzip, deflate
accept-language=zh-CN,zh;q=0.9
cookie=JSESSIONID=C2546DAF8A563BB96F49BF8F787EB904; dlcurbigdeptid=dlwwr; dluinfoforchangeuser=48vmoGkU7M78j2IOOsDD1A==; dluinfoforsec=8PdlRxrxgqzc8+CJUTqV4T69qFarxTwudltN6pNW6M8r7Y+HNzfi262B8JEkzGH0
=======================END=======================

3 結(jié)論

經(jīng)分析, 移動(dòng)端的 user-agent 信息中都含有 Mobile 字樣, 其中安卓機(jī)還帶有 Android 字樣, 蘋果機(jī)帶有 iPhone 字樣;
最初分析的時(shí)候并沒有注意到這個(gè)獨(dú)有的 Mobile 字樣, 所以我的代碼是這樣實(shí)現(xiàn)的文章來源地址http://www.zghlxwxcb.cn/news/detail-510712.html

@GetMapping(value = "/test")
public ModelAndView CheckLoginForModuleUse(HttpServletRequest req){
    String url = "xxxx";
    String userAgent = req.getHeader("user-agent");
    if (userAgent != null) {
        userAgent = userAgent.toLowerCase();
        if (userAgent.contains("android") || userAgent.contains("iphone")) {
            // url中帶上參數(shù)cusotmer=2標(biāo)識(shí)類型, 頁面html中已經(jīng)做了處理, 自動(dòng)根據(jù)customer的值調(diào)整布局
            url += "&cusotmer=2";
        }
    }
}

到了這里,關(guān)于Java后端獲取接口訪問端是PC還是手機(jī)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • uniapp開發(fā)小程序-如何判斷小程序是在手機(jī)端還是pc端打開

    官方說明 https://developers.weixin.qq.com/miniprogram/dev/devtools/pc-dev.html 小程序如何判斷是 PC 平臺(tái)? 通過 getSystemInfo 官方接口(platform 是 windows) 通過 UA(PC UA 包含 MiniProgramEnv/Windows) App.vue 判斷是否是pc端的函數(shù)(如果寬度足夠也視為pc端) 同時(shí)值得注意的是,微信開發(fā)者工具的

    2024年02月04日
    瀏覽(22)
  • 使用JS判斷訪問設(shè)備是電腦還是手機(jī)

    有時(shí)在編寫前端頁面視圖時(shí),需要根據(jù)用戶不同的訪問設(shè)備(手機(jī)或電腦)對(duì)頁面設(shè)置不同顯示樣式或跳轉(zhuǎn)到不同的頁面??梢允褂肑S代碼獲取Navigator對(duì)象的userAgent屬性,通過對(duì)該屬性值的分析就可以知道當(dāng)前訪問的設(shè)備是電腦還是手機(jī)。 一些常用設(shè)備訪問時(shí)返回的userAgent屬

    2024年02月08日
    瀏覽(32)
  • IC設(shè)計(jì)的前端和后端是如何區(qū)分的?

    **1、IC前端:**根據(jù)芯片規(guī)格書完成SOC的設(shè)計(jì)和集成, 使用仿真驗(yàn)證工具完成SOC的設(shè)計(jì)驗(yàn)證。 **2、IC后端:**將前端設(shè)計(jì)產(chǎn)生的門級(jí)網(wǎng)表通過EDA設(shè)計(jì)工具進(jìn)行布局布線和進(jìn)行物理驗(yàn)證并最終產(chǎn)生供制造用的GDSII數(shù)據(jù) **1、IC前端:**熟悉處理器/DMA/AXI/AHB總線。 **2、IC后端:**芯片物

    2024年01月24日
    瀏覽(32)
  • 讓后端設(shè)置了Access-Control-Expose-Headers還是獲取不到filename?

    讓后端設(shè)置了Access-Control-Expose-Headers還是獲取不到filename?

    問題:導(dǎo)出一個(gè)文件,從后端設(shè)置的content-disposition中獲取對(duì)應(yīng)的fileName,but,本地獲取正常,但是部署線上就無法獲取。 大過年的@讓修改,你敢信? 前端獲取? 重要代碼 ?let fileName=decodeURIComponent(res.headers[\\\'content-disposition\\\'].split(\\\'=\\\')[1]); ?但是res.headers部署后獲取不到content-dis

    2024年02月12日
    瀏覽(16)
  • Charles:移動(dòng)端抓包 / windows客戶端 / iOS手機(jī) / HarmonyOS 4.0 / 手機(jī)訪問PC本地項(xiàng)目做調(diào)試

    Charles:移動(dòng)端抓包 / windows客戶端 / iOS手機(jī) / HarmonyOS 4.0 / 手機(jī)訪問PC本地項(xiàng)目做調(diào)試

    一、背景描述 1.1、本文需求:移動(dòng)端進(jìn)行抓包調(diào)試 1.2、理解Charles可以做什么 Charles是一款跨平臺(tái)的網(wǎng)絡(luò)代理軟件,可以用于捕獲和分析網(wǎng)絡(luò)流量,對(duì)HTTP、HTTPS、HTTP/2等協(xié)議進(jìn)行調(diào)試和監(jiān)控。使用Charles可以幫助開發(fā)人員進(jìn)行Web開發(fā)、調(diào)試和測試,同時(shí)也可以用于網(wǎng)絡(luò)安全和隱

    2024年02月08日
    瀏覽(25)
  • 微信小程序登錄+獲取手機(jī)號(hào)碼(前端+后端)

    微信小程序登錄+獲取手機(jī)號(hào)碼(前端+后端)

    上面這張是微信小程序官方原圖,登錄流程如上圖所示,下面一步步進(jìn)行以及說一下碰到的坑。 1.wx.login()獲取code ? ? ? ? 調(diào)用微信小程序官方提供的方法獲取code提供給后端用以換取session_key、openid。 ? ? ? ? 注意:code只能使用一次就會(huì)失效,且有效期為5分鐘 2.后端收到

    2024年02月12日
    瀏覽(95)
  • 畢業(yè)直接后端開發(fā)崗,選擇C++還是java?

    畢業(yè)直接后端開發(fā)崗,選擇C++還是java?

    我們來分析一下,2020 年 4 月,Java 仍然是 TIOBE 指數(shù)的第一名;但緊接著 5 月份,Java 就不得不將第一名讓給了 C。后來在 2021 年,Python 也變得勢不可擋,超越了 Java?,F(xiàn)在看起來,C++ 則將是下一個(gè)超越 Java 的語言。具有高性能的高級(jí)編程是 C++ 表現(xiàn)出色的關(guān)鍵原因。C++ 語言每

    2024年02月04日
    瀏覽(25)
  • 使用vue+springboot+mybatis開發(fā)的信息管理系統(tǒng),前端和后端是怎么進(jìn)行交互的

    1. 前端向后端發(fā)送http請(qǐng)求。 2. 后端接收到請(qǐng)求后,通過mybatis從數(shù)據(jù)庫中獲取所需數(shù)據(jù)。 3. 后端將處理完的數(shù)據(jù)通過restful api返回給前端。 4. 前端根據(jù)后端返回的數(shù)據(jù)進(jìn)行頁面渲染。 具體來說,可以分為以下幾個(gè)步驟: 前端使用vue.js作為基礎(chǔ)框架,使用axios庫向后端發(fā)送h

    2024年02月06日
    瀏覽(21)
  • 微信小程序獲取用戶手機(jī)號(hào)碼教程(前端+后端)

    微信小程序獲取用戶手機(jī)號(hào)碼教程(前端+后端)

    前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到網(wǎng)站,這篇文章男女通用,看懂了就去分享給你的碼吧。 在開發(fā)微信小程序時(shí),獲取用戶手機(jī)號(hào)碼是常見的需求之一。本教程將為你詳細(xì)介紹如何在前端和后端實(shí)現(xiàn)獲取用

    2024年02月08日
    瀏覽(59)
  • 微信小程序獲取用戶手機(jī)號(hào)碼教程(前端+后端)

    微信小程序獲取用戶手機(jī)號(hào)碼教程(前端+后端)

    在開發(fā)一款微信小程序時(shí),需要用戶進(jìn)行微信登錄,獲取用戶的手機(jī)號(hào)碼來作為用戶的唯一標(biāo)識(shí)(userId),于是探索獲取用戶手機(jī)號(hào)碼的方式; (當(dāng)然,通過wx.login來獲取code,進(jìn)而換取用戶的openid也是可以的) 目前版本的微信小程序獲取用戶手機(jī)號(hào)碼的方式如下: 前端開發(fā)

    2024年02月12日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包