Java Spring-更改内容类型HTTP头

Java Spring-更改内容类型HTTP头,java,android,json,spring,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]}我需要发送内容类型:application/j

我正在使用Robospice与JSON API通信。以下是我如何设置POST请求的标题:

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

问题是我得到了一个类似这样的头:
{Content Type=[application/json]}
我需要发送
内容类型:application/json
(这似乎是我的服务器接受的唯一头)。我找不到任何方法来更改它(尝试了
add()
setContentType()
两种方法),我该怎么做呢?

您应该尝试下面的方法,它对我有效。我在Robospice中使用SpringRest模板

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

HttpHeaders headers = new HttpHeaders();
headers.setAccept(acceptableMediaTypes);
MediaType-MediaType=newmediatype(“应用程序”、“json”);
List acceptableMediaTypes=new ArrayList();
acceptableMediaTypes.add(mediaType);
HttpHeaders=新的HttpHeaders();
headers.setAccept(acceptableMediaTypes);
输出

{Content-Type=[application/json]}
您可以在
Log
语句中看到,它只是
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]}

如果您正确地使用了
HttpClient
HttpRequestBase
HttpGet
HttpPost
,等等),那么头将被很好地发送。

它给了我
{Accept=[application/json]}
headers。您的服务器的响应是什么?这是500个内部服务器错误,但我已使用
curl
尝试该请求,以验证其是否与头有关,这似乎是原因(即头格式)服务器不接受请求的原因。如果是HTTP 500,则服务器端应该有问题,需要在服务器端代码中修复。我认为标题是可以的,但是您可以发送更多的代码来查看您是如何创建请求实体的。我猜你在别的地方也犯了错误。