使用 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");
我不知道这是根本原因,但看起来很奇怪。
我有以下 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");
我不知道这是根本原因,但看起来很奇怪。