- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 if (httpResponse == null)
block 没有运行。如何在 HttpResponse httpResponse = httpClient.execute(httpPost);
请告诉我怎么做。
public class XMLParser {
private Activity activity = null;
// constructor
public XMLParser(Activity act) {
activity = act;
}
/**
* Getting XML from URL making HTTP request
* @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();
}
// return XML
return xml;
}
/**
* Getting XML DOM element
* @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("Error: ", e.getMessage());
return null;
} catch (SAXException e) {
AlertDialog.Builder builder = new AlertDialog.Builder( activity ); //<<-- This part throws an exception " ThreadPoolExecutor "
builder.setMessage( "Host not found" )
.setCancelable(false)
.setPositiveButton("Exit",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
System.exit(0);
}
});
AlertDialog alert = builder.create();
alert.show();
Log.e("Error: ", e.getMessage());
return null;
} catch (IOException e) {
Log.e("Error: ", e.getMessage());
return null;
}
return doc;
}
/** Getting node value
* @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 "";
}
/**
* Getting node value
* @param Element node
* @param key string
* */
public String getValue(Element item, String str) {
NodeList n = item.getElementsByTagName(str);
return this.getElementValue(n.item(0));
}
}
最佳答案
当出现错误时,execute
不会返回 null 而是抛出异常。例如,当找不到主机时,它会抛出一个 UnknownHostException
。此异常是 IOException 的子类。
您的代码旨在“捕获”IOException
。但是当这种情况发生时,您只打印一个堆栈跟踪(这可以在您的 LogCat 中以橙色看到)而什么都不做。所以接下来,执行“return xml”语句,您的方法结束。
所以如果你想“捕捉”主机不存在的情况,你可以像下面这样重写它。要捕获更多错误,您可能应该计算出 IOException
catch block 。请确保您了解发生的情况以及异常处理的工作原理。
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 (UnknownHostException e) {
AlertDialog.Builder builder = new AlertDialog.Builder( activity );
builder.setMessage( "Host not found" )
.setCancelable(false)
.setPositiveButton("Exit",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
System.exit(0);
}
});
AlertDialog alert = builder.create();
alert.show();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// return XML
return xml;
}
关于Android HttpResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12129706/
在 ASPX 页面中,我想根据代码路径在特定点(不是由于错误条件)结束响应,以便没有其他内容被发送回流中。如此自然地使用: Response.End(); 这会导致 ThreadAbortExcept
我正在编写一些需要使用我自己的代码 HttpResponse对象捕获来自另一个对象的方法的输出,该方法采用 HttpResponse作为参数。问题是,另一个对象(我无法修改)调用 HttpRespon
嘿伙计们,我对编码有点陌生,但我正在尽力而为。我一直在关注这个登录和注册教程here 。我下载了他的源代码并添加到我的数据库信息中,它可以在 Eclipse 中与他的项目配合使用。但是当我在项目中运行
我在android studio工作。我花了很多时间搜索如何从 mysql 数据库检索特定行,但实际上每次我的应用程序在 HttpResponse httpResponse = httpClient.
import urllib.request html = urllib.request.urlopen('http://jshawl.com/python-playground/') s = html
我的 if (httpResponse == null) block 没有运行。如何在 HttpResponse httpResponse = httpClient.execute(httpPost)
有没有办法控制 contenttype ='application/pdf' 的 HTTPResponse 的缩放大小? 最佳答案 我试了一下它的工作。 download.ashx?id=1zoo
我在休息服务中有以下方法: @POST @Path("/create") @ResponseStatus(HttpStatus.CREATED) @Consumes(M
我的服务器端 Dart Web 应用程序为某些请求提供图像文件。 简单来说,它目前的作用如下: HttpServer.bind(InternetAddress.ANY_IP_V4, 80)
所以我尝试创建一个 HttpsRequest,效果非常好。问题是,我做错了什么,我认为这可能是因为我使用 HttpResponse,但我没有找到任何与 Https 类似的东西。有没有一种方法可以像 h
我已经为此端点编写了一个 REST 客户端: textmap.com/ethnicity_api/api 但是,当在 POST 参数中向其传递诸如 jennífer garcía 之类的名称字符串并将
首先 - 我对 Java 还很陌生。我正在开发一个使用 Shiro 的应用程序,并且我已经定义了用于注销的 REST。它内部有一个重定向,在 Chrome 中使用开发工具时会显示 302 Found
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Parsing an UTF-8 Encodded XML file 我正在解析一个 UTF-8 编码的 X
我将我的代码放在 AsyncTask 中,在 OnPostExecution 中,Dialog 中的结果与 Logcat 中记录的结果不同。Logcat里的不全,Dialog里的全 这是我的代码:
我正在尝试从 https://....com:8455 链接获取内容,其中 “服务器的证书不受信任”。内容是:“测试”。 但在 HttpResponse response = httpClient.e
在我之前的项目中,我使用了 AsyncHttpClient 并且 lib 是 android-async-http-1.4.8.jar 并且一切都很好。但是现在当我在不同的 eclipse 环境中导入
在 Python 中(使用 Python 3.2,但我想它在 Python 2.x 中应该基本相同),我尝试对某个 URL 发出请求。 如果出现访问被拒绝等错误,我会得到一个异常: >>> reque
我正在使用 org.apache.http.HttpResponse 我想创建一个空的虚拟响应,我将使用它在发生错误时返回而不是传回 null。 我试图创建一个,但它丢失了一些奇怪的参数。谁能告诉我如
这个问题在这里已经有了答案: Android: How get the status-code of an HttpClient request (3 个答案) 关闭 9 年前。 我正在尝试获取 H
以下方法在读取 HttpResponse 时失败并出现错误:“内容已被消耗”。我知道内容只能使用一次,但我在第一次尝试时遇到此错误,而且我在代码中看不到任何可能使用它两次的地方。 privat
我是一名优秀的程序员,十分优秀!