gpt4 book ai didi

java - 使用 retrofit2 时如何修复 "failed to connect"错误?

转载 作者:行者123 更新时间:2023-12-05 06:26:30 24 4
gpt4 key购买 nike

我有一个应用程序,我在其中使用 retrofit2 连接到 rest api。每次我尝试使用它时,我都会收到错误消息:“连接失败”。我不知道是什么问题。我希望能够连接到其余 API 并使用我的 GET 请求。

public static final String APP_BASE_URL="http://URL.com/";

Retrofit retrofit=new Retrofit.Builder()
.baseUrl(APP_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();

MyApiendpoint apiService=retrofit.create(MyApiendpoint.class);
Call<Bmwsales> call=apiService.getVehicle(barCode);

call.enqueue( new Callback<Bmwsales>() {

@Override
public void onResponse(Call<Bmwsales> call, Response<Bmwsales> response) {
System.out.println("SUCCESSFULL!!!");
}

@Override
public void onFailure(Call<Bmwsales> call, Throwable t) {
System.out.println("FAILURE!!!"+t.getMessage());
}
});

public interface MyApiendpoint {

@GET("bmwsales/vin/{vin}")
Call<Bmwsales> getVehicle(
@Path("vin") String vin
);
}

我不确定哪里出了问题。我看了很多例子,但仍然无法弄明白。

最佳答案

您的代码没有问题。

但我建议你检查并尝试一些事情

首先,确保您使用的是最新版本的 Retrofit

implementation 'com.squareup.retrofit2:retrofit:2.5.0'

其次,尝试向 Retrofit 添加拦截器,然后检查日志以查看发送到服务器的实际请求,以及是否可以毫无问题地访问该 URL

这是一个使用 Okhttp 的例子

  // Create a new object from HttpLoggingInterceptor
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

// Add Interceptor to HttpClient
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();

// Init retrofit object
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(APP_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(client) // Set HttpClient to be used by Retrofit
.build();

并且不要忘记将 Okhttp 日志拦截器添加到您的依赖项中

 implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1'

第三,可能你的连接速度慢,你只需要增加超时!

 OkHttpClient client = new OkHttpClient.Builder()
.readTimeout(60, TimeUnit.SECONDS)
.connectTimeout(60, TimeUnit.SECONDS)
.addInterceptor(interceptor).build();

关于java - 使用 retrofit2 时如何修复 "failed to connect"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56067920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com