0

こんにちは、私は Android と Java に取り組んでいます。私の問題は、401 が発生するたびに応答ヘッダーを取得できず、ステータス コードも取得できないことです。http url 接続を使用しています。私のコードは次のようになります。

String https_url = "http://abc.com";
      HttpsURLConnection con = null;
      int status;
      URL url;
      try {

         url = new URL(https_url);
         con = (HttpsURLConnection)url.openConnection();

         con.setDoInput(true);
         int responseCode = con.getResponseCode();   //throw IOException:Received authentication challenge is null
        if (responseCode == 200)
        {

        }
        else
        {

        }
      } catch (MalformedURLException e) {
         e.printStackTrace();
      } catch (IOException e) {
          Log.i("&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*", "inside exception");
          if (con != null) {
              Log.i("&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*", "inside not null");
          int responseCodeAfterException = con.getResponseCode();
          Log.i("&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*", "inside not null and response");
          Log.i("&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*", "inside not null and response"+responseCodeAfterException);
          // Handle according to new response code
      }
         e.printStackTrace();
      }

応答ヘッダーからフィールドを取得できません。これは認証の問題であり、サーバーが応答で 401 を返すことはわかっていますが、その応答コードを取得できません。私は何か間違ったことをしていますか?この種の例外を処理する方法。助けが必要です ありがとうございます。

4

1 に答える 1

0

この質問を見てください: IOException: Received authentication challenge is null .

WWW-Authenticateレスポンスにヘッダーが含まれていないため、例外がスローされたようです(仕様を参照)。これがあなたのケースであるかどうかはわかりませんが、確認することはできます。もしそうで、サーバー側を制御している場合は、ヘッダーを返すようにサーバー コードを修正してみてください。

それ以外の場合は、IOException をキャッチしてアプリケーションに報告することしかできません。

于 2013-09-28T11:43:39.617 に答える