-2

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();
}

我需要==.equals()等效的 HttpURLConnection 替换吗?还是我需要使用 HttpURLConnection 的状态码而不是响应码?

4

2 回答 2

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) {

你应该能够说出它为什么不开火。

机会是,他们是不平等的。

于 2013-03-15T03:15:48.720 回答
1

正文永远不会被执行,因为您的代码可能在 HTTP 调用上崩溃了。确保此调用位于单独的线程中。请参阅此处了解更多信息。

至于实际的 if 语句,似乎很好,所以它可能是一个异常问题。

Tbh,将来请确保您提供更多信息,例如日志,并确保您通过将代码抽象为@paxdiablo 所述的片段进行了充分的测试。

祝你好运!

于 2013-03-15T20:09:54.130 回答