【问题标题】:curl command in javajava中的curl命令
【发布时间】:2015-09-12 00:18:58
【问题描述】:

首先,我已经看过几个文档,关于相同的stackoverflow问题..我有我的项目特定问题 尝试运行命令时:

   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();
        }

我收到未经授权的 401 错误和一堆 html 标签。 这似乎是一个重复的问题,但我已经尝试了所有方法。 我知道替代方法是使用 http 响应方法,但特别是我想使用 curl 命令。 提前致谢。

【问题讨论】:

    标签: java curl


    【解决方案1】:

    尝试更改此行

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

    进入

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

    【讨论】:

    • 没问题,我的第一个版本缺少-H标志,使得查询的语法无效
    【解决方案2】:

    嘿试试这个我有同样的问题。 它在我的终端中运行,与您的错误相同。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 2016-06-22
      • 2018-07-06
      相关资源
      最近更新 更多