2012-05-09 7 views
0

私はアンドロイドが初めてで、コードの理解は非常に限られています。私はインターネット上のAPIからXMLデータを返そうとしています。私はこれについていくつかのエンターテイメントを読んだことがありますが、うまくいかないようで、コードの説明がほとんどないので、あまり変更することはできません。android、httpgetを使用してxmlデータを返す

誰かが私が間違っている場所を説明して、何を変更する必要があるかに関する少しの指導をしてもらえますか?

乾杯のみんな

package com.example.testingXML; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.URI; 
import java.net.URISyntaxException; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.entity.BufferedHttpEntity; 
import org.apache.http.impl.client.DefaultHttpClient; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 

public class Main extends Activity { 
    /** Called when the activity is first created. */ 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    try { 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpGet httpget = new HttpGet(); 
     httpget.setURI(new URI("http://api.inapub.co.uk/venues/postcode/bn23fe/1/?API_Key=7xa3tdmjkhu6jwjvp746zgg4")); 


     HttpResponse response = httpclient.execute(httpget); 
     HttpEntity ht = response.getEntity(); 

     BufferedHttpEntity buf = new BufferedHttpEntity(ht); 

     InputStream is = buf.getContent(); 

     BufferedReader r = new BufferedReader(new InputStreamReader(is)); 

     StringBuilder total = new StringBuilder(); 
     String line; 
     String NL = System.getProperty("line.separator"); 
     while((line = r.readLine()) != null){ 
     total.append(line + NL); 
     } 

     r.close(); 
     String page = r.toString(); 

    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (URISyntaxException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 
} 
+0

あなたは合計で応答を得ているのURLConnectionを使っていますか? log.v( "testest"、total); apiの応答を取得しているかどうか確認してください。 –

答えて

1

2つのこと:

1)あなたのHTTPのフェッチを行うための別のスレッドを使用してください。参照: http://developer.android.com/reference/android/os/AsyncTask.html

2)アプリケーションが

​​

3インターネットのアクセス権を要求していることを確認してください)これを行う最も簡単な方法

URLConnection conn = new URL("http://api.inapub.co.uk/venues/postcode [etc...]").OpenConnection(); 
関連する問題