猿问

获取java.net.SocketTimeoutException:android中的连接超时

我是android开发的新手。我正在开发一个android应用程序,其中我向Web服务器发送请求并解析json对象。我经常java.net.SocketTimeoutException: Connection timed out在与服务器通信时遇到异常。有时它会完美地工作而不会出现任何问题。我知道这个问题已经问过很多次了。但是我仍然没有得到令人满意的解决方案。我在下面发布了我的logcat和应用程序服务器通信代码。


public JSONObject RequestWithHttpUrlConn(String _url, String param){


    HttpURLConnection con = null;

    URL url;

    String response = "";

    Scanner inStream = null;

    PrintWriter out = null;

    try {

        url = new URL(_url);

        con = (HttpURLConnection) url.openConnection();

        con.setDoOutput(true);

        con.setRequestMethod("POST");

        if(param != null){

            con.setFixedLengthStreamingMode(param.getBytes().length);

        }

        con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        out = new PrintWriter(con.getOutputStream());

        if(param != null){

            out.print(param);

        }

        out.flush();

        out.close();

        inStream = new Scanner(con.getInputStream());


        while(inStream.hasNextLine()){

            response+=(inStream.nextLine());

        }

    } catch (MalformedURLException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

    } catch (IOException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

    } finally{

        if(con != null){

            con.disconnect();

        }if(inStream != null){

            inStream.close();

        }if(out != null){

            out.flush();

            out.close();

        }

    }

}

谁能帮我找出解决方案?提前致谢....



开心每一天1111
浏览 1567回答 3
3回答

收到一只叮咚

我在网上搜索了很多,并且在阅读了许多有关连接超时异常的文档后,我了解到的是,防止SocketTimeoutException超出了我们的限制...一种有效的处理方法是定义连接超时并稍后处理通过使用try catch块来实现。...希望这将对以后遇到相同问题的任何人有所帮助。HttpUrlConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(7000); //set the timeout in milliseconds

开满天机

如果要在localhost中测试服务器,则必须将Android设备连接到相同的本地网络。然后,您的APP使用的服务器URL必须包含您的计算机IP地址,而不是“ localhost”掩码。
随时随地看视频慕课网APP

相关分类

Java
Android
我要回答