当前位置: 首页 > 知识库问答 >
问题:

Android:httpURLConnection无响应和filenotfind异常

洪飞驰
2023-03-14

嗨,我正在尝试使用HttpURLConnection POST方法进行服务器请求,但没有收到任何响应,我在SO中看到了一些帖子,但我无法理解它们。下面是我的代码

@Override
        protected String doInBackground(Void... arg0) {
            try{
                 System.out.println("inside try clockr=====");
            String urlParameters = "Username=sadmin&Password=s4dm1ncoe";
            String request = "http://10.xx.xx.xxx/eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&Username=sadmin&Password=s4dm1ncoe";
            URL url = new URL(request); 
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();           
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setInstanceFollowRedirects(false); 
            connection.setRequestMethod("POST"); 
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
            connection.setRequestProperty("charset", "utf-8");
            connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length));
            connection.setUseCaches (false);

            DataOutputStream wr = new DataOutputStream(connection.getOutputStream ());
            wr.writeBytes(urlParameters);
            wr.flush();
            wr.close();
            connection.connect();
            System.out.println("checking response=====");
            //Get Response  
            InputStream is = connection.getInputStream();
            BufferedReader rd = new BufferedReader(new InputStreamReader(is));
            String line;
            StringBuffer response = new StringBuffer(); 
            while((line = rd.readLine()) != null) {
              response.append(line);
              response.append('\r');
            }
            rd.close();
            System.out.println("checking response====="+response.toString());
            return response.toString();


            //connection.disconnect();

        }catch(Exception e){
                 System.out.println("checking error====="+e.toString());
                 return new String("Exception: " + e.getMessage());
             }
        }   
    }

上面的代码给我错误FilenotoundExcepttion stackTrace如下

07-15 12:35:47.656: I/System.out(30352): checking error=====java.io.FileNotFoundException: http://10.xx.xx.xxx/eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&Username=sadmin&Password=s4dm1ncoe

这是我的URLhttp://10.xx.xx.xxx/eai_enu/start.swe?SWEExtSource=WebService

有人能帮助解释如何为我的url设置参数吗?


共有1个答案

刘才俊
2023-03-14

您应该同时设置这两个设置

try {

    String path = "http://www.your.web.path/";

    HttpURLConnection conn = (HttpURLConnection) new URL(path).openConnection();
    conn.setConnectTimeout(5000);
    conn.setReadTimeout(5000);

    if(conn.getResponseCode() == 200){
      //...
    }

} catch (Exception e) {
    e.printStackTrace();
    //do your timeout work here.
} 

如果忽略setReadTimeout(),则可能会出现一些问题,请参阅此处。

 类似资料:
  • 我写了一个程序,但当我的朋友尝试执行它时,它抛出filenotfound异常,但文件存在,这是我的代码,在文件夹中有lib文件夹、jar文件和“csv fajlok”,在csv fajlok文件夹中有2个csv文件

  • 我想返回一个临时重定向,使用AsyncACK。 下面的“工作”(因为没有错误),但似乎不是异步的(它一次处理一个请求)。 这应该工作吗?如果我明确需要像https://jersey.github.io/documentation/latest/async.html#d0e9895一样启动一个新线程,返回响应是什么样子的?

  • 我正在使用@ExceptionHandler来管理我的所有异常,并为任何抛出异常的REST API返回一个JSON响应。目前我管理两个异常,第一个是ResourceNotFoundException,它可以工作,但第二个是FileExtensionException,它不工作。它在eclipse控制台中抛出这个异常,而在rest响应中抛出任何东西。 2015-09-21 09:09:05.197错

  • 创建一个 API 的时候处理错误是很痛苦的。为了避免手动的创建错误响应,你可以简单的抛出一个继承了 Symfony\Component\HttpKernel\Exception\HttpException 的异常,API 会自动的为你处理响应。 这里是 Symfony 内置的异常列表。 异常 状态码 Symfony\Component\HttpKernel\Exception\AccessDeni

  • 在我的应用程序中执行一些操作时,我得到了 Java . lang . illegalstateexception无法调用sendError() 当我再次重新加载页面时,它会正常工作一段时间,但一段时间后它再次显示相同的异常。我如何克服这个异常? 以下是例外: 支柱.xml

  • 这是我的代码,我试图通过它发送请求http://localhost:3000/api/post/article使用邮递员,但我收到无法获取的错误。它不用路由器就可以工作。获取,但使用应用程序。所以我认为问题出在路由器上。 这是server.js文件 这是应用程序文件 这是路由器文件 这是控制器文件