我试图得到用户代理,它正在调用一个由瓶子微框架构建的API。当直接使用浏览器调用API时,它会显示用户代理是什么。但是,当它从另一个应用程序(例如用PHP或JAVA编写)调用时,它不会显示用户代理。
不过,无论请求来自浏览器还是其他应用程序,我都可以获得IP地址。
client_ip = request.environ.get('REMOTE_ADDR')
logging.info("Source IP Address: %s" %(client_ip)) #Works
browser_agent = request.environ.get('HTTP_USER_AGENT')
logging.info("Source Browser Type: %s" %(browser_agent)) #Doesn't work when called from an application当我用浏览器调用它或者说是邮递员时,它给我的结果如下:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.3那么,是否有一个特殊的参数可以用来知道哪种类型的代理正在调用API?
发布于 2015-11-03 13:25:28
客户端不需要发送User-agent头。您的浏览器正在发送一个(与大多数浏览器一样),但是您的PHP和Java客户机(可能)不是。
如果您对客户端具有控制权,则向它们提出的每个请求中添加一个用户代理头。例如,在PHP中,请参见this SO answer。
https://stackoverflow.com/questions/33478560
复制相似问题