Mein if (httpResponse == null)
Block wird nicht ausgeführt. Wie könnte es implementiert werden, bevor HttpResponse httpResponse = httpClient.execute(httpPost);
Bitte zeige mir, wie es gemacht werden könnte.
public class XMLParser {
private Activity activity = null;
// Konstruktor
public XMLParser(Activity act) {
activity = act;
}
/**
* XML von URL abrufen und HTTP-Anforderung erstellen
* @param url string
* */
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();
}
// XML zurückgeben
return xml;
}
/**
* XML-DOM-Element abrufen
* @param XML string
* */
public Document getDomElement(String xml){
Document doc = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xml));
doc = db.parse(is);
} catch (ParserConfigurationException e) {
Log.e("Fehler: ", e.getMessage());
return null;
} catch (SAXException e) {
AlertDialog.Builder builder = new AlertDialog.Builder( activity ); //<<-- Dieser Teil wirft eine Ausnahme " ThreadPoolExecutor "
builder.setMessage( "Host nicht gefunden" )
.setCancelable(false)
.setPositiveButton("Beenden",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
System.exit(0);
}
});
AlertDialog alert = builder.create();
alert.show();
Log.e("Fehler: ", e.getMessage());
return null;
} catch (IOException e) {
Log.e("Fehler: ", e.getMessage());
return null;
}
return doc;
}
/** Knotenwert abrufen
* @param elem Element
*/
public final String getElementValue( Node elem ) {
Node child;
if( elem != null){
if (elem.hasChildNodes()){
for( child = elem.getFirstChild(); child != null; child = child.getNextSibling() ){
if( child.getNodeType() == Node.TEXT_NODE ){
return child.getNodeValue();
}
}
}
}
return "";
}
/**
* Knotenwert abrufen
* @param Element Knoten
* @param key string
* */
public String getValue(Element item, String str) {
NodeList n = item.getElementsByTagName(str);
return this.getElementValue(n.item(0));
}
}