gpt4 book ai didi

android - 在 Android Studio 中使用 Retrofit 2.0 进行 POST

转载 作者:行者123 更新时间:2023-11-29 01:24:54 24 4
gpt4 key购买 nike

我正在从事我的个人 Android 项目之一,但遇到了障碍。我正在尝试使用 Retrofit 2.0.0-beta2 发布到 URL,但在使用应该将我的对象 (JsonPost) 的属性转换为 JSON 对象的服务方法时遇到了一些问题。下面是我在请求正文中发送对象的代码,它在我的 MainActivity 中。

public void getTone() {
JsonPost jPost = new JsonPost("email", mJsonText);
Call<JsonPost> call = JsonService.createJsonPost(jPost);
call.enqueue(new Callback<JsonPost>() {
@Override
public void onResponse(retrofit.Response<JsonPost> response, Retrofit retrofit) {

}

@Override
public void onFailure(Throwable t) {

}
});
}

JsonService接口(interface):

public interface JsonService {
@POST("/tone")
Call<JsonPost> createJsonPost(@Body JsonPost jPost);
}

错误是“无法从静态上下文中引用非静态方法 .createJsonPost()”。虽然我明白这意味着什么,但我不确定如何着手解决这个问题。如果有人可以提供一些见解,将不胜感激。谢谢!

最佳答案

您的问题与您尝试进行 Web 服务调用的以下行有关:

Call<JsonPost> call = JsonService.createJsonPost(jPost);

你得到的错误:

'Non-static method .createJsonPost() cannot be referenced from static context'

生成是因为您将接口(interface) JsonService 及其方法createJsonPost() 视为静态方法而不是实例方法。

看起来您可能尚未正确配置 Retrofit 以使用您的服务接口(interface)。

您需要在某处完成以下代码来初始化您的服务:

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://yoururl.com")
.build();

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

然后您可以按如下方式免费使用该服务:

Call<JsonPost> call = service.createJsonPost(jPost);

关于android - 在 Android Studio 中使用 Retrofit 2.0 进行 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34572626/

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