2017-04-23 91 views
0

我有以下卷曲要求:使用的HttpClient使HTTPGET请求

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

我失去的是什么?任何帮助将不胜感激!

回答

1

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

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

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

而且我想它应该是这样的

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

你肯定在

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

貌似是-H是一个公正的卷曲标志-H参数,所以你可以试试

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

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