Spring - 更改Content-type HTTP标头

时间:2013-09-25 21:40:51

标签: java android json spring

我正在使用Robospice与JSON API进行通信。这就是我为POST请求设置标头的方式:

mHttpHeaders = new HttpHeaders();
mHttpHeaders.add("Content-Type", "application/json");
Log.d(Global.TAG, mHttpHeaders.toString());

问题是我得到一个看起来像这样的标题:{Content-Type=[application/json]}我需要发送Content-Type:application/json(这似乎是我的服务器接受的唯一标头)。我找不到任何方法来更改它(尝试使用add()setContentType()方法),我该怎么做?

2 个答案:

答案 0 :(得分:2)

你应该尝试以下,它对我有用。我在Robospice中使用Spring rest模板。

MediaType mediaType = new MediaType("application", "json");
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(mediaType);

HttpHeaders headers = new HttpHeaders();
headers.setAccept(acceptableMediaTypes);

答案 1 :(得分:0)

输出

{Content-Type=[application/json]}

您在Log语句中看到的只是String方法返回的toString(),它不是发送的实际标头。例如

public static void main(String[] args) throws Exception {
    HttpHeaders headers = new HttpHeaders();
    headers.add("Content-Type", "application/json");
    System.out.println(headers);
}

打印

{Content-Type=[application/json]}

如果您正确使用HttpClientHttpRequestBaseHttpGetHttpPost等),标题将会正常发送。