Android 使用改型查询Uber API

Android 使用改型查询Uber API,android,retrofit,uber-api,Android,Retrofit,Uber Api,我试图从()获取产品json数据,但我得到以下错误 E/AndroidRuntime: FATAL EXCEPTION: main Process: shaurya.uberintegration, PID: 21380 java.lang.NullPointerException: Attempt to read from field 'java.util.Listshaurya.uberintegration.ProductsResponse.products' on a null obje

我试图从()获取产品json数据,但我得到以下错误

E/AndroidRuntime: FATAL EXCEPTION: main
Process: shaurya.uberintegration, PID: 21380
java.lang.NullPointerException: Attempt to read from field 'java.util.Listshaurya.uberintegration.ProductsResponse.products' on a null object reference
at shaurya.uberintegration.Success.onResponse(Success.java:40)
at retrofit.ExecutorCallAdapterFactory$ExecutorCallback$1.run(ExecutorCallAdapterFactory.java:86)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5294)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
这是相关代码

雷斯塔皮

public interface RestAPI {
@GET("/v1/products")
Call<ProductsResponse> load(@Header("Authorization") String authToken,
                            @Query("latitude") float latitude,
                            @Query("longitude") float longitude);
}

我认为这与授权有关,我的get请求存在一些问题。请指出问题所在,提前感谢。

解决了问题。在传递访问令牌之前向其添加承载

String t= "Bearer "+accessTokenManager.getAccessToken().getToken();

解决了这个问题。在传递访问令牌之前向其添加承载

String t= "Bearer "+accessTokenManager.getAccessToken().getToken();

response.body(),null指针异常验证它是否为null。我想问题在于GET请求。请告诉我如何修改my代码以成功获取JSON。如果响应状态代码为400或更高,则会在errorBody()而不是body()中返回响应。如果body()上有NPE,我怀疑errorBody()中有内容。调试errorBody()中的内容,希望有原因。或者,如果您有body()但没有产品,则转换器工作不正常。
response.body().products.get(0)
您假设
products
数组或列表不为空,然后尝试
get(0)
显然不是这样,因为看起来
products
为空,因此,在使用它之前,您需要确保它不为null。@Yazan我制作这个toast是为了验证数组是否为null,null指针异常验证它是否为null。我想问题在于GET请求。请告诉我如何修改my代码以成功获取JSON。如果响应状态代码为400或更高,则会在errorBody()而不是body()中返回响应。如果body()上有NPE,我怀疑errorBody()中有内容。调试errorBody()中的内容,希望有原因。或者,如果您有body()但没有产品,则转换器工作不正常。@助记符流大多数端点都需要用户身份验证,我只是先用产品进行了尝试。请调查这个问题。无法成功进行身份验证。如果您想查看终结点和所需身份验证的概述。我为Node.js的Uber包装创建了它。@MnemonicFlow大多数端点都需要用户身份验证,我只是先在产品中试用过。请调查这个问题。无法成功进行身份验证。如果您想查看终结点和所需身份验证的概述。我为Node.js的Uber包装器创建了它。
public class ProductsPOJO {
public String display_name;
public String description;
public ProductsPOJO()
{

}

public String getDisplay_name(){
    return display_name;
}
public String getDescription(){
    return description;
}}
String t= "Bearer "+accessTokenManager.getAccessToken().getToken();