繁体   English   中英

Android检查404错误

[英]Android check 404 error

我有一个下载m3u文件的网址链接,我想检查该网址是否存在并且不返回404错误,因此我在下面编写了代码。 它似乎不起作用。 它既没有显示toast.show也没有显示对话框。 我只要按一下按钮,什么都没有发生。 我真的不知道怎么了

String host = "http://bailive.gr:6500/get.php?type=m3u&username=" + username + "&password=" + password;
boolean flag = checkurl(host);
if (flag == true){
   Toast.makeText(MainActivity.this, "File exists!", Toast.LENGTH_SHORT).show();
   //open player
}
else {
     showNotFoundDialog();}


private boolean checkurl(String host) {
    try {
        HttpURLConnection.setFollowRedirects(false);
        HttpURLConnection con = (HttpURLConnection) new URL(host).openConnection();
        con.setRequestMethod("GET");
        return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}

那是运行结果

    W/System.err: android.os.NetworkOnMainThreadException
W/System.err:     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1148)
W/System.err:     at java.net.InetAddress.lookupHostByName(InetAddress.java:443)
W/System.err:     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:294)
W/System.err:     at java.net.InetAddress.getAllByName(InetAddress.java:214)
W/System.err:     at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28)
W/System.err:     at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216)
W/System.err:     at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122)
W/System.err:     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292)
W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:296)
W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:503)
W/System.err:     at com.churchtv.emmanouilvaresis.churchtv.MainActivity.checkurl(MainActivity.java:89)
W/System.err:     at com.churchtv.emmanouilvaresis.churchtv.MainActivity.onClick(MainActivity.java:67)
W/System.err:     at android.view.View.performClick(View.java:4457)
W/System.err:     at android.view.View$PerformClick.run(View.java:18491)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:733)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err:     at android.os.Looper.loop(Looper.java:136)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5336)
W/System.err:     at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err:     at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
W/System.err:     at dalvik.system.NativeStart.main(Native Method)
V/AudioManager: preDispatchKeyEvent keycode: 4  stream: -2147483648
V/AudioManager: preDispatchKeyEvent keycode: 4  stream: -2147483648
W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection

当应用程序尝试在其主线程上执行联网操作时,将引发此异常。 AsyncTask运行您的代码

要么

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy); 

添加此isde您的oncreate方法

要么

Thread thread = new Thread(new Runnable() {

    @Override
    public void run() {
        try  {


            //Your code goes here




        } catch (Exception e) {
            e.printStackTrace();
        }
    }
});

thread.start(); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM