Подтвердить что ты не робот

Команда curl в java

Прежде всего, я уже видел пару документов, вопросы о стековом потоке относительно того же самого... Я задал свой конкретный вопрос При попытке выполнить команду:

   curl -u username:password https://example.com/xyz/abc 

с терминала mac, я получаю мои данные json-формата. Но запустив ту же команду из java-кода, я получаю ошибку Unauthorized 401 в консоли. Мой код:

    String username="myusername";
    String password="mypassword";
    String url="https://www.example.com/xyz/abc";
       String[] command = {"curl", "-u" ,"Accept:application/json", username, ":" , password , url};
        ProcessBuilder process = new ProcessBuilder(command); 
        Process p;
        try
        {
            p = process.start();
             BufferedReader reader =  new BufferedReader(new InputStreamReader(p.getInputStream()));
                StringBuilder builder = new StringBuilder();
                String line = null;
                while ( (line = reader.readLine()) != null) {
                        builder.append(line);
                        builder.append(System.getProperty("line.separator"));
                }
                String result = builder.toString();
                System.out.print(result);

        }
        catch (IOException e)
        {   System.out.print("error");
            e.printStackTrace();
        }

Я получаю ошибку Unauthorized 401 и кучу html-тегов. Это похоже на повторяющийся вопрос, но я пробовал все подходы. Я знаю, что альтернатива использует метод ответа HTTP, но особенно я хочу использовать команды curl. Заранее спасибо.

4b9b3361

Ответ 1

Попробуйте изменить эту строку

String[] command = {"curl", "-u" ,"Accept:application/json", username, ":" , password , url};

в

String[] command = {"curl", "-H", "Accept:application/json", "-u", username+":"+password , url};

Ответ 2

Эй, попробуй, у меня была такая же проблема. Он работал в моем терминале с той же ошибкой, что и ваша.

String[] command = {"curl", "-u" , username+ ":" + password , url};