从 HttpClient 移动到 HttpUrlConnection
Moving from HttpClient to HttpUrlConnection
我开发了一个 android 应用程序 HttpClient
,目标 API 19。为了进行一些更新,我更新了目标 API 22。一旦我做了,我注意到现在不赞成使用大量以前的实现。所以,我尝试转向更新更好的 HttpUrlConnection
,但我在这方面遇到了一些困难。
我已经在 SO 上浏览过各种线程,但我对此类连接了解不多。
这是我在 API 19 -
中使用的代码
HttpClient client = new DefaultHttpClient();
HttpContext httpContext = new BasicHttpContext();
HttpPost post = new HttpPost("https://example.com/exchweb/bin/auth/owaauth.dll");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("username", username.getText().toString().trim()));
nameValuePairs.add(new BasicNameValuePair("password", password.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("destination", "https://example.com/exchange/" + username.getText().toString().trim()));
nameValuePairs.add(new BasicNameValuePair("flags",
"0"));
nameValuePairs.add(new BasicNameValuePair("rdoPublic", "0"));
nameValuePairs.add(new BasicNameValuePair("rdoTrusted", "4"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post,httpContext);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line;
while ((line = rd.readLine()) != null) {
// Saving line for use
startActivity(new Intent(SplashActivity.this,MainActivity.class));
finish();
}
}
catch (IOException e) {
e.printStackTrace();
}
它可能在某个地方得到了回答,但是有太多的例子要看,我是一个新手,很难找到一个有效的例子。
还有一个问题——HttpUrlConnection 是否像 HttpContext 那样保存会话本身?如果不是,请帮助我也知道,非常感谢。
感谢收听!如果您还需要什么,请评论。
干杯
我最终使用了 Basic HTTP Client 库。它的用法与 HttpClient 相同,但源代码深处是使用 HttpUrlConnection 创建的,它没有被弃用。
我开发了一个 android 应用程序 HttpClient
,目标 API 19。为了进行一些更新,我更新了目标 API 22。一旦我做了,我注意到现在不赞成使用大量以前的实现。所以,我尝试转向更新更好的 HttpUrlConnection
,但我在这方面遇到了一些困难。
我已经在 SO 上浏览过各种线程,但我对此类连接了解不多。
这是我在 API 19 -
中使用的代码HttpClient client = new DefaultHttpClient();
HttpContext httpContext = new BasicHttpContext();
HttpPost post = new HttpPost("https://example.com/exchweb/bin/auth/owaauth.dll");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("username", username.getText().toString().trim()));
nameValuePairs.add(new BasicNameValuePair("password", password.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("destination", "https://example.com/exchange/" + username.getText().toString().trim()));
nameValuePairs.add(new BasicNameValuePair("flags",
"0"));
nameValuePairs.add(new BasicNameValuePair("rdoPublic", "0"));
nameValuePairs.add(new BasicNameValuePair("rdoTrusted", "4"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post,httpContext);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line;
while ((line = rd.readLine()) != null) {
// Saving line for use
startActivity(new Intent(SplashActivity.this,MainActivity.class));
finish();
}
}
catch (IOException e) {
e.printStackTrace();
}
它可能在某个地方得到了回答,但是有太多的例子要看,我是一个新手,很难找到一个有效的例子。
还有一个问题——HttpUrlConnection 是否像 HttpContext 那样保存会话本身?如果不是,请帮助我也知道,非常感谢。
感谢收听!如果您还需要什么,请评论。
干杯
我最终使用了 Basic HTTP Client 库。它的用法与 HttpClient 相同,但源代码深处是使用 HttpUrlConnection 创建的,它没有被弃用。