繁体   English   中英

Retrofit2-请求始终为状态404,响应为空

[英]Retrofit2 - Requests are always status 404 and the response null

我还看到了3条关于此的SO帖子,但是解决方案不起作用。 每个端点都作为status code 404返回,并且在retrofit2中响应为null。 这是我的改造实施:

RetrofitService:

//code setup for HTTP client for Retrofit goes here
......
......
public static void initRetrofit() {
        builder =
                new Retrofit.Builder()
                        .baseUrl(BuildConfig.BASE_URL)
          .addConverterFactory(GsonConverterFactory.create(initGson()));
}

BuildConfig

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            buildConfigField "String", "BASE_URL", "\"http://MY_SERVICE.azurewebsites.net\""
        }
        debug {
            versionNameSuffix ".staging"
            buildConfigField "String", "BASE_URL", "\"http://MY_SERVICE.azurewebsites.net\""
        }
}

终点:

public interface APIServices {

    @POST("api/users/register.json")
    Call<HttpResponse<Auth>> register(@Body RegisterData data);

}

我在这里做错了什么? 其他SO线程建议删除//api/api/users/register.json ,我做到了,但在响应中没有变化。

您没有为Retrofit对象设置HTTP客户端。 尝试为此使用OkHttpClient

public static void initRetrofit() {
    OkHttpClient client = new OkHttpClient.Builder()
                .connectTimeout(Config.HTTP_CONNECT_TIMEOUT, TimeUnit.MILLISECONDS)
                .readTimeout(Config.HTTP_READ_TIMEOUT, TimeUnit.MILLISECONDS)
                .writeTimeout(Config.HTTP_READ_TIMEOUT, TimeUnit.MILLISECONDS)
                .build();

        builder =
                new Retrofit.Builder()
                        .baseUrl(BuildConfig.BASE_URL)
                        .client(client)
          .addConverterFactory(GsonConverterFactory.create(initGson()));
}

另外,请检查您的API地址-为此尝试使用某些服务(例如邮递员):输入您的地址(从您的代码中输入:' http://MY_SERVICE.azurewebsites.netapi/users/register.json ')。

Retrofit2基本网址应以斜杠结尾。 尝试添加它:

buildConfigField "String", "BASE_URL", "\"http://MY_SERVICE.azurewebsites.net/\""

暂无
暂无

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

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