gpt4 book ai didi

java - API向Retrofit返回404

转载 作者:行者123 更新时间:2023-12-02 04:06:39 25 4
gpt4 key购买 nike

我有一个API它会返回一个简单的 JSON 响应(响应代码 200)。但是当我从我的 Android 应用程序请求相同的 URL 时,它会得到 404。

这是依赖项

compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
compile 'com.squareup.okhttp:okhttp:2.6.0'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
compile 'com.google.code.gson:gson:2.4'

这是我的界面

public interface ExampleApi {
@GET("/test/drink/")
Call<Example> getExample();
}

这些代码在MainActivity中运行

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://localpro.herokuapp.com/api")
.addConverterFactory(GsonConverterFactory.create())
.build();

ExampleApi api = retrofit.create(ExampleApi.class);
Call<Example> call = api.getExample();
call.enqueue(new Callback<Example>() {
@Override
public void onResponse(Response<Example> response, Retrofit retrofit) {
try {
Log.i("Response code", " " + response.code());
Log.i("Response", " " + response.body().toString());
} catch (Exception e) {
e.printStackTrace();
}

}

@Override
public void onFailure(Throwable t) {
}
});

日志

12-11 16:59:44.235 8885-8885/com.wealthpack.retrofitfinal I/Response code:  404 
12-11 16:59:44.236 8885-8885/com.wealthpack.retrofitfinal W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
12-11 16:59:44.236 8885-8885/com.wealthpack.retrofitfinal W/System.err: at com.wealthpack.retrofitfinal.MainActivity$1.onResponse(MainActivity.java:45)
12-11 16:59:44.236 8885-8885/com.wealthpack.retrofitfinal W/System.err: at retrofit.ExecutorCallAdapterFactory$ExecutorCallback$1.run(ExecutorCallAdapterFactory.java:86)
12-11 16:59:44.236 8885-8885/com.wealthpack.retrofitfinal W/System.err: at android.os.Handler.handleCallback(Handler.java:746)
12-11 16:59:44.236 8885-8885/com.wealthpack.retrofitfinal W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
12-11 16:59:44.236 8885-8885/com.wealthpack.retrofitfinal W/System.err: at android.os.Looper.loop(Looper.java:148)
12-11 16:59:44.236 8885-8885/com.wealthpack.retrofitfinal W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5443)
12-11 16:59:44.236 8885-8885/com.wealthpack.retrofitfinal W/System.err: at java.lang.reflect.Method.invoke(Native Method)
12-11 16:59:44.236 8885-8885/com.wealthpack.retrofitfinal W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
12-11 16:59:44.236 8885-8885/com.wealthpack.retrofitfinal W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

注意:几年后,我对 Android 开发和使用 Java 完全陌生。

最佳答案

这是一个语法问题,

你必须像这样编写你的服务:

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://localpro.herokuapp.com/api/")
.addConverterFactory(GsonConverterFactory.create())
.build();

public interface ExampleApi {
@GET("test/drink/")
Call<Example> getExample();

有关更多详细信息,请查看 Jake Wharton 的精彩演示 https://youtu.be/KIAoQbAu3eA?t=32m24s :)

关于java - API向Retrofit返回404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34222879/

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