gpt4 book ai didi

android - 无法使用 Retrofit 2 发布 JSON

转载 作者:太空狗 更新时间:2023-10-29 16:13:55 26 4
gpt4 key购买 nike

尝试使用 Retrofit 2.0.0-beta4 POST 一些 JSON 数据时,出现以下错误:

java.lang.IllegalArgumentException: Unable to create @Body converter for class my.pojos.Credentials

...

Caused by: java.lang.IllegalArgumentException: Could not locate RequestBody converter for class my.pojos.Credentials.
Tried:
* retrofit2.BuiltInConverters
* retrofit2.GsonConverterFactory
at retrofit2.Retrofit.nextRequestBodyConverter(Retrofit.java:288)
...

不知道这里发生了什么。据我所知,我的设置是在逐字遵循其他可能有效的示例。

我的应用级build.gradle:

dependencies {
...
compile 'com.google.code.gson:gson:2.5'
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'
compile 'com.squareup.okhttp:okhttp:2.7.0'
...
}

还有我的 retrofit builder :

Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
.create();

Retrofit retrofit = new Retrofit.Builder()
.baseUrl(context.getString(R.string.rest_url))
.addConverterFactory(GsonConverterFactory.create(gson))
.build();

知道我做错了什么吗?

编辑

我的 API 接口(interface)是这样的:

import retrofit2.Call;
import retrofit2.http.*;

public interface MyRestApi {
@POST("/auth")
Call<Auth> login(@Body Credentials user);
}

API 调用:

Call<Auth> authCall = retrofit.create(MyRestApi.class).login(creds);

authCall.enqueue(new Callback<Auth>() {
@Override
public void onResponse(Call<Auth> call, Response<Auth> response) {
...
}

@Override
public void onFailure(Call<Auth> call, Throwable t) {
...
}
});

最佳答案

看起来我的问题是我的 build.gradle 中有 gson 转换器的 beta3,但是改造的 beta4。将我的 build.gradle 更改为以下内容:

dependencies {
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
}

关于android - 无法使用 Retrofit 2 发布 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35247721/

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