我编写了两个处理HTTP请求的程序。我想知道一个人是否比其他人更好 -
程序1(使用HttpURLConnection)
URL url = new URL("https://www.google.com/");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(false);
connection.connect();
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
stringBuilder = new StringBuilder();
计划2(使用HttpPost)
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("https://test.com");
HttpResponse httpResponse = httpClient.execute(httpPost);
InputStream inputStream = httpResponse.getEntity().getContent();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
同样在程序2中,我使用单例来获取连接对象。但是在程序1中没有全局连接对象,每次发出请求时我都需要重新创建HttpURLConnection对象。如果我走在正确的轨道上,请告诉我。
谢谢
答案 0 :(得分:0)
我建议您使用Android Asynchronous Http Client库。 然后你可以避免这些基本的东西。我最喜欢的一件事是HTTP请求发生在UI线程之外。
答案 1 :(得分:0)
同样在程序2中,我使用单例来获取连接对象。但是在程序1中没有全局连接对象,每次我发出请求时都需要重新创建HttpURLConnection对象。
方法2看起来更简单,但它已经很老了:
Apache HTTP客户端 - HTTPPost
DefaultHttpClient及其兄弟AndroidHttpClient是可扩展的 适用于Web浏览器的HTTP客户端。它们大而灵活 蜜蜂。它们的实现是稳定的,并且它们几乎没有错误。但是 这个API的大尺寸使我们很难在没有它的情况下进行改进 打破兼容性。 Android团队没有积极开展工作 Apache HTTP客户端。
<强> HttpURLConnection类强>
HttpURLConnection是一个通用的轻量级HTTP客户端 适合大多数应用。这堂课起初很简陋,但是 其专注的API使我们能够轻松稳步提升。
在Froyo之前,HttpURLConnection有一些令人沮丧的错误。
我们选择方法1 :
对于Gingerbread而言,更好的是,HttpURLConnection是最佳选择。它的 简单的API和小巧的尺寸使其非常适合Android。透明 压缩和响应缓存减少网络使用,提高速度和 节省电池。新的应用程序应该使用HttpURLConnection;它是 我们将在哪里投入精力。
方法2 :
Apache HTTP客户端在Eclair和Froyo上的错误更少。这是这些版本的最佳选择。
谢谢,