无法通过http url连接获取401的响应代码

时间:2013-09-30 09:48:59

标签: android authentication httpurlconnection http-status-codes

嗨,在我的Android应用程序中,我使用HttpUrlconnection进行Web服务。因此,对于具有响应401的任何Web资源请求,它不提供任何标头字段或响应代码。它显示内容长度-1。它触发异常java.io.IOException: Received authentication challenge is null。现在我的问题是如何检查这些条件的响应代码。需要帮忙。我在其他客户端检查这些请求,在那里我发现我的响应正确地带有标题响应代码401和其他字段

我的请求看起来像是

String urlString ="http://WWW.ABC.com";
URL url = new URL(urlString);
login_urlConnection = (HttpURLConnection) url.openConnection();
login_urlConnection.setRequestMethod("GET");
int statusCode = login_urlConnection.getResponseCode() // Here I am getting exception I want this status code to check authentication failure 

如何解决这个问题。需要帮忙。谢谢。

我使用HttpClient进行了同样的调用,然后我能够获得响应代码,那么为什么不使用HttpUrlConnection。我做错了什么需要帮助。

2 个答案:

答案 0 :(得分:0)

   URL url = new URL("http://www.android.com/");
   HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
   try {
     InputStream in = new BufferedInputStream(urlConnection.getInputStream());
     read(in);
    finally {
     urlConnection.disconnect();
   }

阅读使用此块:

int i;
      char c;

      try{
         // new input stream created
         is = new FileInputStream("C://test.txt");

         System.out.println("Characters printed:");

         // reads till the end of the stream
         while((i=is.read())!=-1)
         {
            // converts integer to character
            c=(char)i;

            // prints character
            System.out.print(c);
         }
      }catch(Exception e){

         // if any I/O error occurs
         e.printStackTrace();
      }finally{

         // releases system resources associated with this stream
         if(is!=null)
            is.close();
      }

答案 1 :(得分:0)

urlString应更改为“http://WWW.ABC.com”。

需要Url Scheme(如http://或ftp://等)

此外,您需要连接到服务器。

login_urlConnection.setRequestMethod("GET");
try {
    login_urlConnection.connect();
} catch (IOException e) {
    e.printstackTrace();
}
int statusCode = login_urlConnection.getResponseCode()