获得" 401"尝试连接本地服务器时的响应代码?

时间:2018-01-18 15:08:06

标签: java get httpurlconnection http-status-code-401

我是在 http://192.168.0.101:8080/ 上运行的本地服务器。当我尝试使用以下代码ping服务器时,我得到响应代码为" 401"。我的服务器需要密码为" 12345"

try {
    URL url = new URL("http://192.168.0.101:8080/");  
    HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
    urlc.setRequestMethod("GET");
    urlc.setConnectTimeout(10 * 1000);          // 10 s.
    urlc.connect();

    System.out.println("code" + urlc.getResponseCode());
    if (urlc.getResponseCode() == 200) {        // 200 = "OK" code (http connection is fine).
         System.out.println("Connection success");

    } else {
        System.out.println("Connection nada");
    }
} catch (MalformedURLException e1) {
    System.out.println("MalformedURLException");
} catch (IOException e) {
    System.out.println("IOException nada");
}

1 个答案:

答案 0 :(得分:0)

Http Status Code 401表示未经授权的访问,您需要发送WWW-Authenticate标题以及您的请求。

  

401(未授权)状态代码表示尚未应用请求,因为它缺少目标资源的有效身份验证凭据。生成401响应 的服务器必须发送WWW-Authenticate头字段 (第4.1节),其中包含至少一个适用于目标资源的质询。

有不同的身份验证方案(即Basic,Digest或OAuth),其中一种是基本身份验证,如下所示。

//you code
//
String userCredentials = "username:password";
String basicAuth = "Basic " + new String(new Base64().encode(userCredentials.getBytes()));
urlc.setRequestProperty ("Authorization", basicAuth);
urlc.setRequestMethod("GET");
// your code