2011-11-01 14 views
6

Bazı web servislerine Restful arayüzünü gösterecek bir model nesnesine sahip bir uygulama yazıyorum. Android'de bir java.net.URI ve bir android.net.URI sınıfı olduğunu fark ettim. Birini diğerine karşı kullanmanın yararları nelerdir? Bunu yapan başka biri var mı ve birinin diğerinden daha iyi olduğunu mu keşfetti?android.net vs java.net ve farklı URI sınıfları

Aşağıdaki kodda, URI'nın tek tek bölümlerini bir java.net URI nesnesine ayrıştırıyorum, böylece httpGet(URI uri) numaralı telefonu arayabilirim. Bununla birlikte, android.net sınıflarını kullanmak veya sadece httpGet (String url) çağırmak için herhangi bir performans avantajı veya herhangi bir yararı olur mu?

public class RestMethods { 
    private String protocol; 
    private String host; 
    private Integer port; 
    private URI uri; 

    public String restGet(String path) throws MalformedURLException, InterruptedException, ExecutionException{ 
     StringBuilder builder = new StringBuilder(); 
     try { 
      // Execute HTTP Post Request 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpGet httpget = new HttpGet(uri); 
      HttpResponse response = httpclient.execute(httpget); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); 
      for (String line = null; (line = reader.readLine()) != null;) { 
       builder.append(line).append("\n"); 
      } 
     } catch (ClientProtocolException e) { 
      return "Client Protocol Exception Exception " + e.toString(); 
     } catch (IOException e) { 
      return "IO Exception " + e.toString(); 
     } 
     return builder.toString(); 
    } 
... 
//Other rest methods, Getters, and setters down here 
... 
} 

cevap

3

this'a bakın. Bu yardımcı olmalı.

4

Evet, performans avantajları olacak. Android ekibi, java.net paketini uygularken yaptıkları android.net paketini kodlarken aynı geriye dönük uyumluluk kısıtlamalarına uymak zorunda değildir. Bu nedenle daha iyi optimizasyonlar yapabilirler.