当前位置: 首页 > 知识库问答 >
问题:

翻新的顺序请求

夏元明
2023-03-14

我使用reform连接到一个API,该API在每个响应中包含一个惟一的令牌。这个令牌必须包含在下一个请求中。这意味着我需要在发出下一个请求之前等待请求的响应。

在改造中是否有内置机制来实现这一目标?如果不是,推荐的方法是什么?请注意,我使用的是异步改造方法和版本 1.9。拦截器用于读取令牌并自动将其添加到下一个请求中,这非常有效。当两个请求非常接近时,就会出现问题,因此第二个请求最终使用过时的令牌,因为第一个请求尚未返回新请求。

共有1个答案

吕俊哲
2023-03-14

我建议您将RxAndroid与改型结合使用(改型支持RxJava)。

有了它,您可以轻松地连锁呼叫,例如:

webservice.getToken()
    .flatMap(new Func1<Response, Observable<Response>>() {

           @Override
           public Observable<Response> call(Response getTokenResponse) {
              String token = ... // TODO extract token.
              return webservice.getDataFromWeb(token);
           }
        })

使用Web服务。getToken()您将检索令牌。此调用的响应作为参数getTokenResponse传递给flatMap运算符。在这里,您可以提取令牌,并可以使用该令牌执行第二次呼叫。

由于这是一个复杂的主题,可能需要进一步阅读,我建议RxAndroid的以下链接:

https://github.com/ReactiveX/RxAndroid

https://github.com/ReactiveX/rxjava/wiki

http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/

http://joluet.github.io/blog/2014/07/07/rxjava-retrofit/

 类似资料:
  • 我想将用户凭据发送到以下url:http://myurl/authenticate

  • 一、题目 输入一个英文句子,翻转句子中单词的顺序,但单词内字的顺序不变。为简单起见,标点符号和普通字母一样处理。 举例说明 例如输入字符串”I am a student. ”,则输出”student. a am I”。 二、解题思路 第一步翻转句子中所有的字符。比如翻转“I am a student. ”中所有的字符得到”.tneduts a m a I”,此时不但翻转了句子中单词的顺序,连单词内

  • NowCoder 题目描述 // html Input: "I am a student." Output: "student. a am I" 解题思路 题目应该有一个隐含条件,就是不能用额外的空间。虽然 Java 的题目输入参数为 String 类型,需要先创建一个字符数组使得空间复杂度为 O(N),但是正确的参数类型应该和原书一样,为字符数组,并且只能使用该字符数组的空间。任何使用了额外

  • 本文向大家介绍C++实现翻转单词顺序,包括了C++实现翻转单词顺序的使用技巧和注意事项,需要的朋友参考一下 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。 思路:首先将整个句子按字符翻转,然后再将其中每个单词的字符旋转。 再给

  • 我正在编写一个Netty应用程序(Netty 4),其中处理每条消息可能需要一些时间。作为我的意思的一个例子,我创建了一个,它用原始消息响应,尽管有时会在短时间延迟后响应: 使用此代码,不能保证响应的顺序与传入请求的顺序相同。事实上,如果第一条消息由字符串“delay”和其他字符串的第二条组成,则响应的顺序将颠倒!我写了一个测试来说明这一点: 我正在寻找Netty中的内置方式,以确保传出响应的顺序

  • 问题内容: 我正在制作一个Java Servlet页面,该页面检查域名列表,并通过jquery ajax请求检查每个名称。它的工作正常,除非结果被无序附加到DOM。什么是按请求的顺序处理请求的最佳方法,但是又像长时间轮询一样异步进行。我是javascript新手。 这是我用于请求的代码: 我当时正在考虑向Java Servlet发送一个序列号,该序列号将通过JSON返回,但是我想知道是否有更简单的