开发者社区> 问答> 正文

osc安卓版如何保持session的?? 400 报错

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;
	}	

展开
收起
爱吃鱼的程序员 2020-06-04 15:56:20 579 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
    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在客户端上使用不太现实。######非常感谢,使用这种方式有什么好处呢?######学习
    2020-06-04 17:11:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载