1

我正在使用 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()方法),我该怎么做?

4

2 回答 2

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);
于 2013-09-25T21:49:12.330 回答
1

输出

{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]}

如果您正确使用HttpClientand HttpRequestBase( HttpGet, HttpPost, 等),则可以正常发送标头。

于 2013-09-26T01:19:29.000 回答