IF语句的主体未执行(HttpURLConnection)

时间:2013-03-15 03:10:15

标签: java android if-statement httpurlconnection http-status-codes

永远不会执行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的状态代码而不是响应代码?

2 个答案:

答案 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所述的部分来完成足够的测试。

祝你好运!