Java Apache HTTP客户端使用HTTP请求失败,其中cURL成功

Java Apache HTTP客户端使用HTTP请求失败,其中cURL成功,java,curl,httpclient,Java,Curl,Httpclient,我发现使用ApacheHTTP客户端在Java中执行简单的http请求很困难。请求是指向以下url(当前正在运行)的简单获取。使用curl请求成功,如下所示: curl -v -X GET http://109.231.121.64:20622/v1/collections/S4C/objects/OpsConfig/data > s4cOpsInitModel.xml 这是输出: * Hostname was NOT found in DNS cache * Try

我发现使用ApacheHTTP客户端在Java中执行简单的http请求很困难。请求是指向以下url(当前正在运行)的简单获取。使用curl请求成功,如下所示:

curl -v -X GET http://109.231.121.64:20622/v1/collections/S4C/objects/OpsConfig/data > s4cOpsInitModel.xml    
这是输出:

* Hostname was NOT found in DNS cache    
*   Trying 109.231.121.64...    
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current    
                               Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:----:--:--     0* Connected to 109.231.121.64 (109.231.121.64) port 20622 (#0)
> GET /v1/collections/S4C/objects/OpsConfig/data HTTP/1.1
> User-Agent: curl/7.35.0
> Host: 109.231.121.64:20622
> Accept: */*
> 
< HTTP/1.1 200 OK
< connection: keep-alive
* Server Cowboy is not blacklisted
< server: Cowboy
< date: Tue, 08 Sep 2015 08:11:22 GMT
< content-length: 2349
< content-type: application/octet-stream
< 
{ [data not shown]
100  2349  100  2349    0     0  27819      0 --:--:-- --:--:----:--:-- 27964
* Connection #0 to host 109.231.121.64 left intact

我看了一下谷歌,但我不知道发生了什么。我的猜测是,接受的内容类型有问题,但我试图设置不同类型的内容类型,但没有成功。你知道我做错了什么吗?提前感谢大家。

已解决,它似乎与接受的内容类型有关。将以下标头添加到http请求中可以使其正常工作

getRequest.setHeader("accept", "*/*");    

已解决,似乎与接受的内容类型有关。将以下标头添加到http请求中可以使其正常工作

getRequest.setHeader("accept", "*/*");    

我今天也有这个问题,但原因不同。我在绞尽脑汁。那是我向sharepoint发出http请求的时候

卷发-效果很好。Http客户端没有

我花了很长时间才意识到这一点,但这是因为我在请求中手动发送的
FedAuth
rtFa
cookies以某种方式干扰了保存到cookie存储中并发送回的cookies。所以第一个请求可以正常工作,然后第二个请求会出错


解决方案是在每次请求之前清除cookie存储,或者如果rtfa fedauth cookie已经在cookie存储中,则不在请求中设置它们。

我今天也遇到了这个问题,但原因不同。我在绞尽脑汁。那是我向sharepoint发出http请求的时候

卷发-效果很好。Http客户端没有

我花了很长时间才意识到这一点,但这是因为我在请求中手动发送的
FedAuth
rtFa
cookies以某种方式干扰了保存到cookie存储中并发送回的cookies。所以第一个请求可以正常工作,然后第二个请求会出错


解决方案是在每次请求之前清除cookie存储,或者如果rtfa fedauth cookie已经在cookie存储中,则不在请求中设置它们。

curl-verbose-silent?为什么?请检查/提供curl的输出/详细信息。您遇到了什么“问题”?请在帖子中添加任何异常stacktrace抱歉称它们为问题,我编辑了帖子,还添加了curl-v.curl-verbose-silent的输出?为什么?请检查/提供curl的输出/详细信息。您遇到了什么“问题”?请在帖子中添加任何异常stacktrace抱歉,称它们为问题,我编辑了帖子,还添加了curl-v的输出。