繁体   English   中英

改造和 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);

    }
}

没有如何正确执行此操作的示例,因此我尝试遵循转换器工厂中的单元测试。

https://github.com/square/retrofit/blob/master/retrofit-converters/protobuf/src/test/java/retrofit2/converter/protobuf/ProtoConverterFactoryTest.java

如何将编译的 gRPC 代码链接到转换器或改造库?

问题是改造不支持开箱即用的 gRPC。

自己没试过,但你可能想检查亚美尼亚框架。 它支持 gRPC 并提供与改造的网络引擎兼容的网络引擎。

https://line.github.io/armeria/client-retrofit.html

对于未来的读者!

如果您想在 Android 应用程序中使用 gRPC 而不是 REST,请使用 Square 的Wire库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM