【发布时间】:2015-01-07 11:34:49
【问题描述】:
我在使用 Apache HttpComponent 访问网络服务时遇到了一个奇怪的行为。
我可以访问服务器日志,当我尝试连接到服务器并执行 httpGet 命令时,我可以在日志中首先看到 401 状态(http 未授权),然后是 200(http OK)。
两次尝试发生在“httpClient.execute(httpGet)”期间
所以我正在寻找如何避免这种行为。有什么想法吗?
这是我目前正在使用的以下代码:
HttpGet httpGet = new HttpGet(this.url + request);
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters,3000);
HttpConnectionParams.setSoTimeout(httpParameters,5000);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
Credentials creds = new UsernamePasswordCredentials(login, password);
httpClient.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), creds);
HttpResponse response = httpClient.execute(httpGet);
int status = response.getStatusLine().getStatusCode();
Log.v(this, "Response code status: " + status); // code status = 200 (even if a 401 and then a 200 are visible in the server log).
有关信息,我正在将此代码用于 Android 应用程序。
【问题讨论】: