android - Square 的 Retrofit Android : Hash With Contents of Request

标签 android hash

我想使用 Square 的 Retrofit 库用我的请求的某些部分创建一个散列。 RequestInterceptor 对我没有帮助,因为它不提供有关请求的信息,它只是可以向其中添加信息。 我需要访问 HTTP 谓词、所有 header 和 REST 路径来创建哈希。哈希将被添加到授权 header 中。 有什么想法吗?

最佳答案

为了通过 Retrofit 1.9.0 实现这一点,唯一的方法是使用 OkHttp 拦截器 (https://github.com/square/okhttp/wiki/Interceptors)。以下代码使用 OkHttp 2.2.0:


    public class YourInterceptor implements Interceptor {<p></p>

<pre><code>    @Override public Response intercept(Chain chain) throws IOException {

        Request request = chain.request();

        if (request != null) {
            RequestBody body = request.body();
            URL requestURL = request.url();
            String method = request.method();
            Headers headers = request.headers();

            Request.Builder signedRequestBuilder = request.newBuilder();
            signedRequestBuilder.addHeader("Authorization", "Your Signature");
            request = signedRequestBuilder.build();
        }
        return chain.proceed(request);
    }
}
</code></pre>

<p>. . . </p>

<pre><code>OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.interceptors().add(new YourInterceptor());
RestAdapter restAdapter = new RestAdapter.Builder()
    .setClient(new OkClient(okHttpClient))
    .build();
</code></pre>

<p></p>

关于android - Square 的 Retrofit Android : Hash With Contents of Request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22233610/

相关文章:

android - 服务中的位置查找器被信号量阻止?

javascript - 我的 JS 字谜图解决方案的时间、空间复杂度

ruby - Ruby 中数组和哈希的性能

javascript - JavaScript 中的 Rails 哈希,访问值

ruby - 什么是具有 'nil' 条件的优雅 Ruby 方法?

android - 在 Graphview 库中使用日期

android - 如何存储值并在方向改变时检索它?

android - 如何在Android中设置按钮点击效果?

javascript - Web Audio API 无法在虚拟设备的 Android 浏览器中播放音频

c++ - 使用 hash_map 时,在 STL 字符串上使用的最佳散列算法是什么?