gpt4 book ai didi

java - 使用带有 Cookie 持久性的改造

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:31 24 4
gpt4 key购买 nike

伙计们,我正在使用改造,我想知道如何透明地处理 session cookie。为此,我扩展了给定的 ApacheClient 并在对 ApacheClient.execute(HttpClient, HttpUriRequest) 的自定义调用中使用 CookieStore:

Client client = new ApacheClient() {
final CookieStore cookieStore = new BasicCookieStore();
@Override
protected HttpResponse execute(HttpClient client, HttpUriRequest request) throws IOException {
// BasicHttpContext is not thread safe
// CookieStore is thread safe
BasicHttpContext httpContext = new BasicHttpContext();
httpContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
return client.execute(request, httpContext);
}
};

RestAdapter restAdapter = new RestAdapter.Builder()
.setServer(API_URL)
.setClient(client)
.build();

有没有更好的方法使用内置改造 API(没有 HttpClient 扩展)来做到这一点?

最佳答案

从 API 9 开始,您拥有 java.net.CookieManager 并且可以像这样设置系统范围的 cookie 处理程序:

CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(cookieManager);

是的,Apache Http 客户端使用它自己的 cookie 处理机制。但这应该不是问题,因为从 API 9 开始,推荐使用 HttpURLConnection HTTP 客户端。如果您使用 Square 的 Retrofit,您可能还会喜欢他们的 OkHttp 库 - 具有许多有用功能的自定义 URLConnection 实现。

关于java - 使用带有 Cookie 持久性的改造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18894540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com