永远不会执行IF语句的主体。这是为什么?
假设
String urlRequest = "http://stackoverflow.com/";
这是我的代码:
try {
URL url= new URL(urlRequest);
HttpURLConnection foo = (HttpURLConnection) url.openConnection();
if(foo.getResponseCode() == HttpURLConnection.HTTP_OK) {
// SOME CODE HERE
}
} catch(Exception e) {
e.printStackTrace();
}
我是否需要将==
替换为HttpURLConnection的.equals()
等效项?或者我是否需要使用HttpURLConnection的状态代码而不是响应代码?
答案 0 :(得分:1)
如果你改变:
if(foo.getResponseCode() == HttpURLConnection.HTTP_OK) {
成像:
int xyzzy = foo.getResponseCode();
System.out.println ("xyzzy = " + xyzzy);
System.out.println (" OK = " + HttpURLConnection.HTTP_OK);
if(xyzzy == HttpURLConnection.HTTP_OK) {
你应该能够告诉它为什么不解雇。
可能是,他们不相等。
答案 1 :(得分:1)
主体永远不会被执行,因为您的代码可能在HTTP调用上崩溃。 确保此调用位于单独的线程中。 有关详情,请参阅here。
至于实际的if语句,看起来很好,所以它可能是一个例外问题。
Tbh,将来请确保提供更多信息,例如日志,并确保通过将代码抽象为@paxdiablo所述的部分来完成足够的测试。
祝你好运!