android,使用httpget返回xml数据
我是android新手,对代码的理解非常有限。我正在尝试从internet上的api返回xml数据。我读过几篇关于这方面的文章,但似乎没有一篇是有效的,它们对代码的解释也很少,所以我无法对其进行太多的修改 谁能解释一下我哪里出了问题,给我一些需要改变的指导 干杯,伙计们android,使用httpget返回xml数据,android,xml,http-get,Android,Xml,Http Get,我是android新手,对代码的理解非常有限。我正在尝试从internet上的api返回xml数据。我读过几篇关于这方面的文章,但似乎没有一篇是有效的,它们对代码的解释也很少,所以我无法对其进行太多的修改 谁能解释一下我哪里出了问题,给我一些需要改变的指导 干杯,伙计们 package com.example.testingXML; import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt
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();
}
}
}
两件事:
1) 请使用单独的线程执行HTTP获取。见:
2) 确保应用程序正在请求internet权限
<uses-permission android:name="android.permission.INTERNET" />
你得到了全部答复吗?log.v(“测试者”,总计);检查是否获得api响应?
URLConnection conn = new URL("http://api.inapub.co.uk/venues/postcode [etc...]").OpenConnection();