我正在使用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()
方法),我该怎么做?
答案 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]}
如果您正确使用HttpClient
和HttpRequestBase
(HttpGet
,HttpPost
等),标题将会正常发送。