Java Spring-更改内容类型HTTP头
我正在使用Robospice与JSON API通信。以下是我如何设置POST请求的标题: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
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,则服务器端应该有问题,需要在服务器端代码中修复。我认为标题是可以的,但是您可以发送更多的代码来查看您是如何创建请求实体的。我猜你在别的地方也犯了错误。