Java 如何从android进行http调用

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

嗨,我想在线程中使用此代码,我如何才能做到这一点?? 此代码用于在android中读取rss提要

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的类来完成这样的工作。我猜您需要