我正在研究适用于Android和Java的Retrofit REST客户端。
在Eclipse中使用标准Java项目,我在使用@POST且返回类型无效。
进行异步调用。
一切都按预期工作,但是我的测试主方法永远不会终止。我必须手动停止每个测试执行。
为了使测试自动终止,我需要做什么(或停止做什么)?
这是我的Java代码。
import retrofit.Callback;
import retrofit.RestAdapter;
import retrofit.RetrofitError;
import retrofit.client.Response;
public class Android {
private static final RestAdapter mRestAdapter =
new RestAdapter.Builder()
.setEndpoint("http://localhost:8080/resources/registrations")
.build();
public static void main(final String... args) {
final AndroidRegister androidRegister =
mRestAdapter.create(AndroidRegister.class);
Callback<Void> callback = manufactureCallback();
androidRegister.androidRegisterInterface(
new RegistrationIdJson("1111-2222-3333-4444"), callback);
}
private static Callback<Void> manufactureCallback() {
return new Callback<Void>() {
@Override
public void failure(final RetrofitError retrofitError) {
System.out.println("retrofitError-->"
+ retrofitError.getLocalizedMessage() + "<---");
}
@Override
public void success(final Void returning,
final Response response) {
System.out.println("-->" + returning + "<--->"
+ response.getStatus() + "<---");
}
};
}
}
默认情况下,Retrofit使用具有60s核心池超时的非守护程序线程池。您很少,很少希望以Callback
这种方式使用Retrofit的异步行为。
如果你只是简单的测试,你可以叫setExecutors
上RestAdapter.Builder
,并通过同步执行作为第一个参数和null
第二。这将允许您使用异步API,但可以在测试中获得同步行为。
还有一个同步执行器,如果您不知道如何做一个:
public final class SynchronousExecutor implements Executor {
@Override public void execute(Runnable r) {
r.run();
}
}
问题内容: 有了JSR 311及其实现,我们有了一个强大的标准,可以通过REST公开Java对象。但是,在客户端,似乎缺少与SOAP的Apache Axis类似的东西-隐藏了Web服务并将数据透明地封送回Java对象的东西。 您如何创建Java RESTful客户端?使用HTTPConnection和手动解析结果?还是专业客户(例如Jersey或Apache CXR)? 问题答案: 这是一个古老的
问题内容: 我正在开发一个项目,该项目需要解析一些受保护的网页中的数据。为了获得对这些页面的访问权限,我必须克服SAML身份验证形式(Shibboleth)。是否有人能够在Android(Java)中实现此标准?我已经读过这个线程:Android的SAML客户端实现? 但这并不能给我一个很好的解决方案。实际上,我需要 获取某些受保护网页的数据 以便对其进行解析,而不是让用户看到此类网页的内容。因此
我有一个连接到WebSocket服务器并从服务器接收消息的微服务。我想在这个应用程序中集成Sleuth,因为这是我的一组微服务的网关。但是当我连接到WebSocket服务器并开始接收消息时,我无法在日志中跟踪ID,spanid。我期待着这样的事情: 但我得到了: 我的代码如下: 我们的pom条目包括:
问题内容: 有人知道iOS的Elasticsearch客户端库吗?如果它也是迅速写的,那将是一个好处。 elasticsearch的“客户端”部分显示了多个平台的多个库,但对于iOS没有任何显示,我觉得有人必须这样做吗? 干杯 问题答案: 我怀疑是否有人- 上次我检查时没有,并且有充分的理由。请记住,为了允许IOS客户端(或Android)使用客户端库连接到Elasticsearch,您必须打开集
问题内容: 我已经设置了Go rest api。并在登录时执行此操作: 为了检查会话,我有这样的东西: 如果我执行邮递员的请求,效果很好,但是当我从客户那里收到请求时,我会得到401。你们中的任何人是否经历过类似的事情?该商店是一个CookieStore。 我已经检查了ID,将sessionId变量替换为静态字符串。大猩猩会话使用大猩猩上下文注册一个新请求,当我这样做时,来自邮递员的请求不为空,但
作为标题,我不知道为什么他们在VSCode或Android Studio中的终端内置不起作用。 bash:flatter:未找到命令 我已经在~/中设置了Flutter路径。bash_profile.这里是的结果 /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dot net:~/。dot net/tools:/Appli