【问题标题】:Connection to distant server using HttpURLConnection使用 HttpURLConnection 连接到远程服务器
【发布时间】:2015-12-08 08:06:31
【问题描述】:

我尝试使用HttpURLConnection 将 json 对象发送到远程服务器。 但是显示了这个错误

"Exception in thread "main" java.lang.RuntimeException: Failed : HTTP error code : 401
at TestSendSMS.main(TestSendSMS.java:40)"

我不知道有什么问题。这段代码有什么问题?任何帮助

 try {
        /*
         * JSONObject jsonParam = new JSONObject();
         * jsonParam.put("-----","----"); jsonParam.put("----","-----");
         * jsonParam.put("-----","-----");
         */
        String input = "{\"------\":\"------\",\"-----\":\"------\",\"------\":\"-----\"}";
        System.out.println("JsonObj " + jsonParam);

        URL myURL = new URL("-----------------------");
        HttpURLConnection myURLConnection = (HttpURLConnection) myURL
                .openConnection();

        myURLConnection.setDoOutput(true);
        myURLConnection.setDoInput(true);
        myURLConnection.setChunkedStreamingMode(0);
        myURLConnection.setUseCaches(false);
        myURLConnection.setConnectTimeout(10000);
        myURLConnection.setReadTimeout(10000);
        myURLConnection.setRequestProperty("Content-Type",
                "application/json");
        myURLConnection.setRequestProperty("Accept", "application/json");

        OutputStream os = myURLConnection.getOutputStream();
        os.write(input.getBytes());
        os.flush();

        if (myURLConnection.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
            throw new RuntimeException("Failed : HTTP error code : "
                    + myURLConnection.getResponseCode());
        }

        BufferedReader br = new BufferedReader(new InputStreamReader(
                (myURLConnection.getInputStream())));

        String output;
        System.out.println("Output from Server .... \n");
        while ((output = br.readLine()) != null) {
            System.out.println(output);
        }
        myURLConnection.disconnect();
    } catch (MalformedURLException e) {
        System.out.println("error1");
    }

    catch (IOException e) {
        System.out.println("error2");
    }

【问题讨论】:

  • 你在哪里设置网址?
  • 您是否设置了正确的用户名和密码?
  • URL myURL = new URL("------------------------");
  • 我没有用户名和密码

标签: java httpurlconnection jsonobject


【解决方案1】:

HTTP Error 401 是一个身份验证问题。

发送请求时需要对服务器进行身份验证。

本主题可以帮助您使用 URLConnection 进行身份验证:

How to handle HTTP authentication using HttpURLConnection?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多