我在移动应用中使用快递API
。通过移动浏览器测试API时,快递服务器检测到移动(使用用户代理),但问题出在应用程序上。每当我从移动应用程序发出API请求时,user-agent
标头就只有okhttp/3.12.1
。
我该如何检测移动设备?
除了user-agent
之外,可能还有其他解决方案。
请帮助。
答案 0 :(得分:0)
android使用的是okhttp库,在okhttp中,您可以在标头中设置用户代理
Request request = new Request.Builder()
.url("http://www.publicobject.com/helloworld.txt")
.header("User-Agent", "mobile")
.build();
答案 1 :(得分:0)
如果我理解的正确,那么您正在使用React-Native开发您的移动应用程序。 “ okhttp / 3.12.1”是RN的正确用户代理。只需检查用户代理是否为“ okhttp / 3.12.1”即可识别您自己的移动应用。
否则,您可能需要识别移动浏览器。
我使用类似的东西:
mobile_browser_user_agent_sign_list = "Android", "iPhone", "Opera Mini", "Windows Phone", "Mobile Safari"
def is_mobile_device(user_agent):
if "okhttp" in user_agent:
return True
for sign_item in mobile_browser_user_agent_sign_list:
if sign_item in user_agent:
return True
return False