我是Android的新手。我尝试使用retrofit2在android中获取json数据,它显示“连接超时”并且不显示任何内容。相同的代码如果我正在使用其他一些休息api它工作正常。请帮我解决这个问题。先感谢您。这是我的MainActivity.java类:import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;import java.util.List;import java.util.concurrent.TimeUnit;import okhttp3.OkHttpClient;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;import retrofit2.Retrofit;import retrofit2.converter.gson.GsonConverterFactory;public class MainActivity extends AppCompatActivity { ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listViewHeroes); getUsers(); } public void getUsers(){ Retrofit retrofit = new Retrofit.Builder() .baseUrl(Api.BASE_URL) .addConverterFactory(GsonConverterFactory.create()) //Here we are using the GsonConverterFactory to directly convert json data to object .build(); Api api = retrofit.create(Api.class); System.out.println("api:"+api); Call<List<User>> call = api.getUsers(); Log.i("inside main","method.."); call.enqueue(new Callback<List<User>>() {如果需要更多细节,请随时询问。谢谢。
3 回答

萧十郎
TA贡献1815条经验 获得超13个赞
由于发生连接超时,无法完成网络改造。
您似乎在localhost上运行API。确保您在同一网络上,正确的系统IP地址和端口号是正确的。
尝试使用移动设备中使用的相同URL在机器浏览器上调用webservice。检查响应是否可行。

繁星coding
TA贡献1797条经验 获得超4个赞
可能是您的服务器或本地主机返回数据,您可以通过增加超时时间来检查它
这是一个kotlin代码
okhttp客户端
val okHttpClientBuilder = OkHttpClient.Builder() .addInterceptor(ChuckInterceptor(application)) .addInterceptor(AppVersionInterceptor()) .connectTimeout(1, TimeUnit.MINUTES) .readTimeout(1, TimeUnit.MINUTES) .writeTimeout(1, TimeUnit.MINUTES)
添加回答
举报
0/150
提交
取消