【问题标题】:Using HttpClient to make httpGet request使用 HttpClient 发出 httpGet 请求
【发布时间】:2017-04-23 16:19:49
【问题描述】:

我有以下 cURL 请求:

curl -H "AuthToken: anything" http://localhost:9999/my_service/data?%24expand=total%2Callocated

我想使用 Apache HttpClient 在我的应用程序中进行此调用。我的代码如下:

HttpGet httpGet = new HttpGet(uri);
httpGet.setConfig(myConfig);
httpGet.addHeader("-H", "AuthToken: anything");
response = this.httpClient.execute(httpGet, httpClientContext);

但是,这不起作用 - 我得到一个响应代码 400。

我在这里缺少什么?任何帮助将不胜感激!

【问题讨论】:

    标签: java curl apache-httpclient-4.x http-get


    【解决方案1】:

    -H 是 curl 的一个选项,而不是您的服务所期望的实际 HTTP 标头名称。

    我认为你需要在这里修改标题名称。

    httpGet.addHeader("[Header name your service is expecting]", "AuthToken: anything");
    

    我猜它应该是这样的

    httpGet.addHeader("AuthToken", "anything");
    

    【讨论】:

      【解决方案2】:

      你确定-H参数在

      httpGet.addHeader("-H", "AuthToken: anything");

      看起来 -H 只是一个 curl 标志,所以你可以尝试一下吗

      httpGet.addHeader("AuthToken", "anything");

      我不知道这是根本原因,但看起来很奇怪。

      【讨论】:

        猜你喜欢
        • 2021-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多