Java 如何从android进行http调用
嗨,我想在线程中使用此代码,我如何才能做到这一点?? 此代码用于在android中读取rss提要Java 如何从android进行http调用,java,android,Java,Android,嗨,我想在线程中使用此代码,我如何才能做到这一点?? 此代码用于在android中读取rss提要 public String getXmlFromUrl(String url) { String xml = null; try { // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new
public String getXmlFromUrl(String url) {
String xml = null;
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
xml = EntityUtils.toString(httpEntity);
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
// return XML
return xml;
}
在网络操作上使用异步任务。这是一个例子:
private class YourTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... arg0) {
String xml = null;
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
xml = EntityUtils.toString(httpEntity);
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
// return XML
return xml;
}
@Override
protected void onPostExecute(String result) {
// result is your xml. You can use it here.
}
@Override
protected void onPreExecute() {}
@Override
protected void onCancelled() {}
}
您可以使用新的YourTask.executeVoidnull调用此线程
祝你好运。在类字段中定义一个处理程序,然后像下面的示例一样将代码放在其中
Handler handler = new Handler();
...
public void MyOnClick(View v){
new Thread(new Runnable() {
@Override
public void run() {
handler.post(new Rubnable()){
{your code}
}
}
}).start();
}
最好的方法是在线程中使用AsyncTask…?可能有一个名为AsyncTask的类来完成这样的工作。我猜您需要