从 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 创建的,它没有被弃用。