Java 使用Zomato API搜索附近的餐厅

Java 使用Zomato API搜索附近的餐厅,java,android,api,Java,Android,Api,我正在尝试使用zomato API搜索附近的餐馆,并将其显示在我的应用程序中,但我得到了空值。 当我调试应用程序时,我得到一个空响应 这是我第一次在我的android应用程序中使用API,我正在使用改进版。我的目标是使用我的当前位置获取附近餐馆的列表,然后将其显示到我的应用程序中 main活动 package com.example.zomatoapi; import androidx.appcompat.app.AppCompatActivity; import android

我正在尝试使用zomato API搜索附近的餐馆,并将其显示在我的应用程序中,但我得到了空值。

当我调试应用程序时,我得到一个空响应

这是我第一次在我的android应用程序中使用API,我正在使用改进版。我的目标是使用我的当前位置获取附近餐馆的列表,然后将其显示到我的应用程序中

main活动

package com.example.zomatoapi;

import androidx.appcompat.app.AppCompatActivity;

    import android.os.Bundle;
    import android.util.Log;
    import android.widget.Toast;

import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.Retrofit.Builder;
import retrofit2.converter.gson.GsonConverterFactory;

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

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

    ZomatoApi zomatoApi = retrofit.create(ZomatoApi.class);

    Call<CurrentCity> listCall = zomatoApi.getCurrentCities();

    listCall.enqueue(new Callback<CurrentCity>() {
        @Override
        public void onResponse(Call<CurrentCity> call, Response<CurrentCity> response) {

            CurrentCity currentCity = response.body();

            List<Object> objects = currentCity.getNearbyRestaurants();

            for (Object object : objects)
            {
                Log.i("Heyy",object.toString());
            }
        }

        @Override
        public void onFailure(Call<CurrentCity> call, Throwable t) {

            Toast.makeText(MainActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });
    }
}
package com.example.zomatoapi;
导入androidx.appcompat.app.appcompat活动;
导入android.os.Bundle;
导入android.util.Log;
导入android.widget.Toast;
导入java.util.List;
2.电话;;
2.回拨;
2.回应;;
进口改装2.改装;
导入Reformation 2.Reformation.Builder;
进口改装2.converter.gson.GsonConverterFactory;
公共类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
改装改装=新建改装.Builder().baseUrl(ZomatoApi.baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
ZomatoApi ZomatoApi=reformation.create(ZomatoApi.class);
调用listCall=zomatoApi.getCurrentCities();
enqueue(新的回调函数(){
@凌驾
公共void onResponse(调用、响应){
CurrentCity CurrentCity=response.body();
List objects=currentCity.GetNearByRestarants();
用于(对象:对象)
{
Log.i(“Heyy”,object.toString());
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Toast.makeText(MainActivity.this,t.getMessage(),Toast.LENGTH_SHORT).show();
}
});
}
}
ZomatoApi.zava

package com.example.zomatoapi;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Headers;

public interface ZomatoApi {
String baseUrl = "https://developers.zomato.com/api/v2.1/";

@Headers("user-key: 1d63821dbb228ee5d09e8c8f7cfe10c3")
@GET("/api/v2.1/geocode?lat=21.046900&lon=75.782070")
 Call<CurrentCity> getCurrentCities();
}
package com.example.zomatoapi;
导入java.util.List;
2.电话;;
导入文件2.http.GET;
导入2.http.Headers;
公共接口ZomatoApi{
字符串baseUrl=”https://developers.zomato.com/api/v2.1/";
@标题(“用户密钥:1D63821DB228EE5D09E8C8F7CFE10C3”)
@GET(“/api/v2.1/geocode?lat=21.046900&lon=75.782070”)
调用getCurrentCities();
}
请帮助我,并为我糟糕的写作技巧表示歉意

您在
api/v2.1/“
中添加了基本url以及界面中的个人请求。从接口@GET request中删除
“/api/v2.1/”

package com.example.zomatoapi;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Headers;

public interface ZomatoApi {
String baseUrl = "https://developers.zomato.com/api/v2.1/";

@Headers("user-key: 1d63821dbb228ee5d09e8c8f7cfe10c3")
@GET("/api/v2.1/geocode?lat=21.046900&lon=75.782070")
 Call<CurrentCity> getCurrentCities();
}