无法在Android中使用retrofit2获取JSON数据

我是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>>() {



如果需要更多细节,请随时询问。谢谢。


POPMUISE
浏览 960回答 3
3回答

萧十郎

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

繁星coding

可能是您的服务器或本地主机返回数据,您可以通过增加超时时间来检查它这是一个kotlin代码okhttp客户端&nbsp;val&nbsp;okHttpClientBuilder&nbsp;=&nbsp;OkHttpClient.Builder() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addInterceptor(ChuckInterceptor(application)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addInterceptor(AppVersionInterceptor()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.connectTimeout(1,&nbsp;TimeUnit.MINUTES) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.readTimeout(1,&nbsp;TimeUnit.MINUTES) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.writeTimeout(1,&nbsp;TimeUnit.MINUTES)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java