Curl -d, как я могу использовать HTTP в Java? - PullRequest
1 голос
/ 30 сентября 2019

Я хотел бы сделать запрос с этим оператором curl:

curl -u Username:Password -d "auth" https://.../.../...

Я хочу создать соединение с battle.net (API разработчика Blizzard), но я не знаю, как реализовать -d. Я надеюсь, что кто-то может мне помочь. Прошу прощения за мой плохой английский. Я новичок в этом сообществе.

    public static void main(String[] args) throws IOException {

        String user = "...";
        String pwd = "...";

        try {
          URL url = new URL ("https://(battle.net)");
          String encoding = Base64.getEncoder().encodeToString((user + ":" + pwd).getBytes("UTF-8"));

          HttpURLConnection connection = (HttpURLConnection) url.openConnection();
          connection.setRequestMethod("POST");
          connection.setDoOutput(true);
          connection.setRequestProperty  ("authorization_code", encoding);
          InputStream content = (InputStream)connection.getInputStream();
          BufferedReader in   = 
              new BufferedReader (new InputStreamReader (content));
          String line;
          while ((line = in.readLine()) != null) {
              System.out.println(line);
          }
      } catch(Exception e) {
          e.printStackTrace();
      }

    }

ОШИБКА:

java.io.IOException: Server returned HTTP response code: 401 for URL: "https://(battle.net)"
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at gnfcxfg.asd.main(asd.java:28)

1 Ответ

0 голосов
/ 30 сентября 2019

Согласно -d, --data <data> на справочной странице curl :

Это заставит curl передавать данные на сервер с помощью приложения типа контента /x-www-form-urlencoded.

Я бы установил:

connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

URLConnection имеет getOutputStream () :

Возвращает выходной поток, который пишет в это соединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...