我在我的Android应用程序中使用okhttp 2.0,没有找到一种方法来为所有传出的请求设置一些常见的用户代理。
我想我可以做一些
OkHttpClient client = new OkHttpClient();
client.setDefaultUserAgent(...)
...但没有这样的方法或类似的方法。当然我可以提供一些扩展实用程序方法,它将 Package 一个RequestBuilder来附加.header("UserAgent")
,然后我将使用它来构建我所有的请求,但我想也许我错过了一些现有的和更简单的方法?
7条答案
按热度按时间uz75evzq1#
您可以使用拦截器将User-Agent标头添加到所有请求中。
有关okHttp拦截器的更多信息,请参见http://square.github.io/okhttp/interceptors/
此拦截器的示例实现:
用户代理拦截器的测试:
ohfgkhjo2#
如果有人正在寻找这个与OkHttp 3和在Kotlin工作:
7uhlpewt3#
okHttp v2.1将在接下来的几周内发布,如果还没有设置的话,will automatically set将是
User-Agent
的头部。到目前为止,还没有一个好的方法可以集中地将这个头添加到每个请求中,唯一的解决办法是为每个创建的
Request
手动添加这个头。vltsax254#
根据@josketres的回答,以下是OkHttp版本3的类似拦截器
加上更新的测试:
htzpubme5#
您必须在较新版本中使用
builder
。***(2021年9月)***kzipqqlq6#
在新版本的OkHttp中不再需要使用拦截器。添加用户代理非常简单:
来源:OkHttp wiki。
noj0wjuj7#
和Kotlin一起加入拦截器