2011-01-29 4 views
1

初心者のJavaプログラマー。私は自分のオプションがAndroidプラットフォーム(Java)上でXMLを読み込むためのものであると思っています。接続やデータの読み込みに関するドキュメントやデモはほとんどありません(AFAIK)。私は基本認証でリクエストに署名し、次にapplication/xml content-typeを返すURLにGET/POST/PUT/DELETEを行う必要があります。基本的に私はJavaでのcURLリクエストのこのタイプをエミュレートする必要があります。Android/Java用のRESTful Webサービスオプション

curl -H 'Content-type: application/xml' -H 'Accept: application/xml' \ 
     -u '{account}/{username}:{apikey}' https://mywebsite.com 

は、私はちょうどorg.apacheでHttpClientを使用すべきか、よりよい解決策はありますか? APIからXMLレスポンスをロードしたら、Android用の推奨パーサは何ですか? Javaのパーサは非常に多くあるようですが、私は完全に圧倒されています。

答えて

2

確かにHTTPClientを使用し、それがAndroid上で動作するはずですし、それはそんなに簡単に自分でものを書くよりも呼び出しを行うことがある...ここでは例です: -

// Create a new HttpClient and Post Header 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); 

    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("id", "12345")); 
     nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!")); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(httppost); 

    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
    } 
2

は、私は自分自身をJerseyclient好む:

依存:

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-client</artifactId> 
    <version>1.5</version> 
</dependency> 

例:

WebResource resource = Client.create().resource("http://www.site.com/"); 
ClientResponse response = resource.path("user/list").header("foo", "bar").type(MediaType.TEXT_PLAIN).post("Awesome Sauce!", ClientResponse.class); 
String responseBody = response.getEntity(String.class); 
System.out.println(responseBody); 

しかし、HttpClientは確かに動作します。パーサーの

、私はJAXBXStreamXPPJDOM、またはJava DOM APIは常にありますが好きです。あなたはGoogleのことができるXMLライブラリの束があります。 XPPは軽量で高速なので、Androidではうまくいく可能性があります。

2

私が見た中で最高の例の一つは、ロマン・ガイ(アンドロイドに取り組んで、Googleのエンジニア)から棚アプリです:

http://code.google.com/p/shelves/

アプリは、GoogleブックスのサービスとパースへのHTTP要求を行いそれが戻ってくるXML。周囲に浮かぶ他の例があります。しかし、ShelvesアプリはGoogleの人々の一人から来ています。私は、他のコードよりもベストプラクティスを表示することについて、常に信じていました。

1

RESTサービスを呼び出すための最先端技術は、Google IO 2010の公式Twitterアプリケーションの著者によって発表されました。 XMLの解析に関しては、通常、SDKに組み込まれているプルパーサーを使用します。

上位レベルのRESTフレームワークについては、Spring Androidを参照してください。