我正在使用CRest在Android上反序列化JSON流。我的第一步看起来很有希望。
要从服务器获取JSON流而不是XML,我使用以下构造:
(Accept: application/json
)
@EndPoint("http://localhost:8080/myserver/rest")
@Param(name = "Accept", value = "application/json", dest = Destination.HEADER)
public interface VersionService {
@ConnectionTimeout(10000)
@Path("/version")
VersionTO getVersion();
}
这样可行,但复制每个服务的“Param事物”有点烦人。 有没有更好的方法在一个地方配置所有服务只返回JSON?
答案 0 :(得分:0)
答案 1 :(得分:0)
我遇到了类似的情况,我使用自定义HTTP客户端。在您的情况下,它可能如下所示:
DefaultHttpClient client = new DefaultHttpClient();
client.addRequestInterceptor(new HttpRequestInterceptor() {
public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
request.addHeader("Accept", "application/json");
}
});
CRestBuilder builder = new CRestBuilder();
builder.expectsJson();
builder.setRestService(new HttpClientRestService(client));
另一个选项是为自定义HttpClient实例的ClientPNames.DEFAULT_HEADERS设置默认参数。 详情可在http://hc.apache.org/httpcomponents-client-ga/tutorial/html/httpagent.html找到。