osc安卓版如何保持session的?? 400 报错
@红薯 你好,想跟你请教个问题:
HttClent官网上说,用同一个HttpClient向服务器端发送请求可以自动保持session,你们每次创建新的httpClient是如何保持session的呢?这么做有什么优点?
private static HttpClient getHttpClient() {
HttpClient httpClient = new HttpClient();
// 设置 HttpClient 接收 Cookie,用与浏览器一样的策略
httpClient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
// 设置 默认的超时重试处理策略
httpClient.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
// 设置 连接超时时间
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(TIMEOUT_CONNECTION);
// 设置 读数据超时时间
httpClient.getHttpConnectionManager().getParams().setSoTimeout(TIMEOUT_SOCKET);
// 设置 字符集
httpClient.getParams().setContentCharset(UTF_8);
return httpClient;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
private static GetMethod getHttpGet(String url, String cookie, String userAgent) {
GetMethod httpGet = new GetMethod(url);
// 设置 请求超时时间
httpGet.getParams().setSoTimeout(TIMEOUT_SOCKET);
httpGet.setRequestHeader("Host", URLs.HOST);
httpGet.setRequestHeader("Connection","Keep-Alive");
httpGet.setRequestHeader("Cookie", cookie);
httpGet.setRequestHeader("User-Agent", userAgent);
return httpGet;
}
private static PostMethod getHttpPost(String url, String cookie, String userAgent) {
PostMethod httpPost = new PostMethod(url);
// 设置 请求超时时间
httpPost.getParams().setSoTimeout(TIMEOUT_SOCKET);
httpPost.setRequestHeader("Host", URLs.HOST);
httpPost.setRequestHeader("Connection","Keep-Alive");
httpPost.setRequestHeader("Cookie", cookie);
httpPost.setRequestHeader("User-Agent", userAgent);
return httpPost;
}
客户端没有使用保持session的策略,而是用的cookie,每次请求都是带上cookie的。
######回复 @迷途d书童 : 最近在学习REST,如果App的后台提供RESTful的API,是否可以解决这个问题呢?######这只是一个服务器端验证用户是否登录的一个策略而已,也没什么好处,而session在客户端上使用不太现实。######非常感谢,使用这种方式有什么好处呢?######学习