我正在使用 retrofit 来访问RESTful api.基本url是:

http://api.example.com/service

以下是接口的代码:

public interface ExampleService {
    @Headers("Accept: Application/JSON")
    @POST("/album/featured-albums")
    Call<List<Album>> listFeaturedAlbums();
}

下面是我发送请求和接收响应的方式:

new AsyncTask<Void, Void, Response<List<Album>>>() {

        @Override
        protected Response<List<Album>> doInBackground(Void... params) {
            Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl("http://api.example.com/service")
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();

            ExampleService service = retrofit.create(ExampleService.class);

            try {
                return service.listFeaturedAlbums().execute();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Response<List<Album>> listCall) {
            Log.v("Example", listCall.raw().toString());
        }
    }.execute();

我得到的日志(log)很奇怪:

v/示例:响应{protocol=http/1.1,code=404,message=未找到,url=http://api.example.com/album/featured-albums}

这是怎么回事?

推荐答案

改装2使用与<a href="">相同的规则.

相对URL上的前导/告诉Reformation,它是主机上的绝对路径.下面是我做的演示的一个例子:

enter image description here

请注意底部解析的错误URL.

通过删除前导/,URL将成为相对的,并将与作为基本URL一部分的路径段相结合.已在演示文稿中更正最终URL现在是正确的:

enter image description here

在您的示例中,基本URL上没有尾随的/.您可能希望添加一个,以便在其上解析相对路径,而不是将其作为sibling .

Android相关问答推荐

使用StateFlow从房间到UiState的流程列表

编写Inbox需要具有匹配兼容性的Kotlin版本

如何处理谷歌未经证实的应用程序拒绝?

Jetpack Compose主导航中的全屏图标列表

Android Jetpack Compose调用view-model函数仅一次

在Delphi中使用OpenCV for Android在使用JLIST时抛出错误

在更改MuableState的值后,Android API 26(Oreo)上的Composable不能重新组合

android回收器查看点击事件无响应

使用 JNI 从 Android 应用程序中使用 Kotlin/Native 预构建共享库

为什么 Android Studio 中的 theme.xml 目录没有任何原色

Android Studio 在 list 文件中已经声明了活动类,但仍出现无法找到明确的活动类的错误

如何在这段代码android jetpack compose中实现全屏滚动

如何在ExecutorService中设置progressBar的进度?不想使用 AsyncTask,因为它已被弃用

如何在 Android 的 ViewModel 中使用 LiveData

如何从包装在泛型中的 retrofit 调用中检索密钥?

如何在 Jetpack Compose 中的特定位置绘制图像

Android Studio电鳗:javaHome好像无效

Jetpack Compose 惰性列在单个项目更新时重新组合所有项目

Jetpack Compose Arc 进度条动画(如何重启动画)

try 使用 ViewPager2 实现滑动视图时出现类型不匹配错误