使用HttpClient发出httpGet请求

时间:2017-04-23 16:19:49

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

我猜它应该是这样的

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

答案 1 :(得分:1)

您确定

中的-H参数吗?

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

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

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

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