Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redirect Jersey客户端在重定向时忘记接受标头_Redirect_Http Headers_Client_Jersey - Fatal编程技术网

Redirect Jersey客户端在重定向时忘记接受标头

Redirect Jersey客户端在重定向时忘记接受标头,redirect,http-headers,client,jersey,Redirect,Http Headers,Client,Jersey,我正在尝试将Jersey用作RESTful应用程序的客户端。具体地说,我想将一些JSON发布到服务器,并获取JSON,因此我的代码如下所示: final JSONObject config = new JSONObject(); clientConfig.put("fooParam", 60 * 5); /* 5 min timeout */ final JSONObject newClient = client.resource(/* URL */).

我正在尝试将Jersey用作RESTful应用程序的客户端。具体地说,我想
将一些JSON发布到服务器,并获取JSON,因此我的代码如下所示:

final JSONObject config = new JSONObject();
clientConfig.put("fooParam", 60 * 5); /* 5 min timeout */

final JSONObject newClient = client.resource(/* URL */).
                          type(MediaType.APPLICATION_JSON).
                          accept(MediaType.APPLICATION_JSON).
                          post(JSONObject.class, config);
这将生成预期的HTTP请求,并适当设置
内容类型
接受
头。现在,服务器决定创建请求的资源并使用
HTTP/1.1303 See Other
响应重定向到那里(据我所知,这是一种良好的做法)。好消息是Jersey很高兴地拿起
位置
标题,并确实请求它被告知的资源。糟糕的是,它似乎忘记了我只想获取
application/json
资源,并用

Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
服务器很高兴地回答(使用完全合法的HTML)。我用Wireshark验证了这一点。问题是Jersey在这一点上大发雷霆,因为它无法将其解析为
JSONObject
。所以我的问题是

  • 泽西的这种行为是正确的还是错误的
  • 有什么聪明的办法吗

我知道我可能会浏览Jersey的类,看看自己是否被重定向,但我认为应该有更好的方法来做到这一点。

在Jersey邮件列表上与Pavel进行了一次对话后,似乎问题在于Java库中的
HttpURLConnection
类。通过使用Apache HTTP客户端库,解决这个问题很容易,它工作得很好。

根据您的描述,对我来说,这听起来像是Jersey客户端库中的一个bug。我会检查以确保您使用的是最新版本,然后在他们的邮件列表中询问。我将此邮件发送到jersey issues邮件列表(但不确定此列表是否正确):