改造和 GRPC
Retrofit and GRPC
这两天一直在处理这个问题。我正在尝试将 ProtoConverterFactory 与 gRPC 一起使用,但没有任何运气。
public class RetrofitService {
public void makeRequest() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://myurl:444")
.addConverterFactory(ProtoConverterFactory.create())
.build();
RetrofitServiceImp serviceImp = retrofit.create(RetrofitServiceImp.class);
serviceImp.getToken(Empty.getDefaultInstance()).enqueue(new Callback<Token.TokenResponse>() {
@Override
public void onResponse(Call<Token.TokenResponse> call, Response<Token.TokenResponse> response) {
Log.d("SUCCESS", "onResponse: ");
}
@Override
public void onFailure(Call<Token.TokenResponse> call, Throwable t) {
Log.d("ERROR", "onFailure: " + t.getLocalizedMessage() + t.getMessage());
}
});
}
interface RetrofitServiceImp {
@POST("/")
Call<Token.TokenResponse> getToken(@Body Empty empty);
}
}
没有关于如何正确执行此操作的示例,因此我尝试按照转换器工厂中的单元测试进行操作。
我如何link将编译后的 gRPC 代码添加到转换器或改造库中?
问题是改造不支持开箱即用的 gRPC。
我自己还没有尝试过,但你可能想检查亚美尼亚框架。它支持 gRPC 并提供与 retrofit 兼容的网络引擎。
为了未来的读者!
如果您想在 android 应用中使用 gRPC 而不是 REST,请使用 Square 的 Wire 库。
这两天一直在处理这个问题。我正在尝试将 ProtoConverterFactory 与 gRPC 一起使用,但没有任何运气。
public class RetrofitService {
public void makeRequest() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://myurl:444")
.addConverterFactory(ProtoConverterFactory.create())
.build();
RetrofitServiceImp serviceImp = retrofit.create(RetrofitServiceImp.class);
serviceImp.getToken(Empty.getDefaultInstance()).enqueue(new Callback<Token.TokenResponse>() {
@Override
public void onResponse(Call<Token.TokenResponse> call, Response<Token.TokenResponse> response) {
Log.d("SUCCESS", "onResponse: ");
}
@Override
public void onFailure(Call<Token.TokenResponse> call, Throwable t) {
Log.d("ERROR", "onFailure: " + t.getLocalizedMessage() + t.getMessage());
}
});
}
interface RetrofitServiceImp {
@POST("/")
Call<Token.TokenResponse> getToken(@Body Empty empty);
}
}
没有关于如何正确执行此操作的示例,因此我尝试按照转换器工厂中的单元测试进行操作。
我如何link将编译后的 gRPC 代码添加到转换器或改造库中?
问题是改造不支持开箱即用的 gRPC。
我自己还没有尝试过,但你可能想检查亚美尼亚框架。它支持 gRPC 并提供与 retrofit 兼容的网络引擎。
为了未来的读者!
如果您想在 android 应用中使用 gRPC 而不是 REST,请使用 Square 的 Wire 库。