如何让用户代理调用bottlepy API

时间:2015-11-02 13:18:46

标签: python bottle

我试图让用户代理调用使用瓶子微框架构建的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?

1 个答案:

答案 0 :(得分:1)

客户端无需发送User-agent标头。您的浏览器正在发送一个(大多数情况下),但您的PHP和Java客户端(可能)不是。

如果您可以控制客户端,请为他们发出的每个请求添加用户代理标头。例如,在PHP中,请参阅this SO answer