2012-09-06 60 views
0

我使用下面的類發送一個http請求,並在我的android項目中獲得返回的XML響應。 但試圖發送請求時會引發UnknownHostException。 請幫我解決這個問題。未知的主機android http請求應該返回一個XML的異常

import java.io.ByteArrayOutputStream; 
import java.io.File; 
import java.io.IOException; 

import org.apache.http.HttpResponse; 
import org.apache.http.HttpStatus; 
import org.apache.http.StatusLine; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.xml.sax.Attributes; 
import org.xml.sax.ContentHandler;  
import org.xml.sax.Locator; 
import org.xml.sax.SAXException; 

import android.os.AsyncTask; 
import android.util.Xml; 

class RequestTask extends AsyncTask<String, String, String>{ 

@Override 
protected String doInBackground(String... uri) { 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpResponse response; 
    String responseString = null; 
    try { 
     response = httpclient.execute(new HttpGet(uri[0])); 
     StatusLine statusLine = response.getStatusLine(); 
     if(statusLine.getStatusCode() == HttpStatus.SC_OK){ 
      ByteArrayOutputStream out = new ByteArrayOutputStream(); 
      response.getEntity().writeTo(out); 
      out.close();     
      responseString = out.toString(); 
     } else{ 
      //Closes the connection. 
      response.getEntity().getContent().close(); 
      throw new IOException(statusLine.getReasonPhrase()); 
     } 
    } catch (ClientProtocolException e) { 
     //TODO Handle problems.. 
    } catch (IOException e) { 
     String s=e.toString(); 
     System.out.println(s); 
     //TODO Handle problems.. 
    } 
    return responseString; 
} 

@Override 
protected void onPostExecute(String result) { 
    super.onPostExecute(result); 
    //Do anything with response.. 
    System.out.println(result); 





} 


} 

回答

1

確保您已在AnroidManifest文件中聲明瞭INTERNET權限並具有Internet連接。

你應該有這樣的權限在AndroidManifest:

<uses-permission android:name="android.permission.INTERNET" /> 
聲明