使用 HttpClient 发出 httpGet 请求

Using HttpClient to make httpGet request

我有以下 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。

我在这里错过了什么?任何帮助将不胜感激!

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

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

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

我想应该是这样的

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

你确定

中的-H参数吗

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

看起来 -H 只是一个卷曲标志,所以你可以试试

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

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