Android注解REST集头

标签 android http-headers android-annotations

我正在使用 Android 注释,最近发现了一个错误 Spring Rest Template usage causes EOFException我不知道如何使用注释修复。我有发帖请求:

@Post("base/setItem.php")
Item setItem(Protocol protocol);

现在,我该如何设置标题

headers.set("Connection", "Close");

这个请求?

谢谢!

最佳答案

两种解决方案:

解决方案一

自 AA 3.0(仍在快照中)起,您可以使用 interceptors @Rest 注释上的字段并实现自定义 ClientHttpRequestInterceptor,它将为每个请求设置 header :

public class HeadersRequestInterceptor implements ClientHttpRequestInterceptor {
    @Override
    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
        request.getHeaders().set("Connection", "Close");
        return execution.execute(request, body);
    }
}

方案二

对于 AA <= 2.7.1,您应该创建一个带有 @EBean 注释的类,并注入(inject)您的 Rest 接口(interface)。用这个 bean 替换其他类上所有注入(inject)的 Rest 接口(interface)。在这个新 bean 中,创建一个 @AfterInject 方法,它将检索 RestTemplate 实例并配置解决方案 1 的拦截器:

RestClient.java :

@Rest(...)
public interface RestClient {
    @Post("base/setItem.php")
    Item setItem(Protocol protocol);

    RestTemplate getRestTemplate();
}

RestClientProxy.java :

@EBean
public class RestClientProxy {
    @RestService
    RestClient restClient;

    @AfterInject
    void init() {
        RestTemplate restTemplate = restClient.getRestTemplate();
        List<ClientHttpRequestInterceptor> interceptors = restTemplate.getInterceptors();
        interceptors.add(new HeadersRequestInterceptor());
    }
}

关于Android注解REST集头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18366917/

相关文章:

jquery - 通过 Jquery 和 ASP.NET 进行 Ajax

java - 如何将 AndroidAnnotations SharedPref 与 PreferenceActivity 一起使用?

android - 向 AndroidAnnotation 注入(inject)的 bean 添加参数

android - 找不到 AndroidManifest.xml 文件,使用 Android 注释后的生成文件夹

java - Android AudioRecord 初始化失败(其他解决方案无效)

android - 从 Assets 目录读取文件抛出 FileNotFoundException

apache - 如何在 Apache 虚拟主机中使用来自 CloudFront 的自定义 header

android - 在 Activity 堆栈中查找 Activity 位置

java - 将类转移到 ListActivity 上的其他类

ios8 - AFNetworking 2.0 已弃用,如何传递授权 token