gpt4 book ai didi

android - 改造发布空数据

转载 作者:行者123 更新时间:2023-11-29 16:41:14 28 4
gpt4 key购买 nike

我是 Retrofit 的新手。我只是使用改造向我的数据库添加一行,但我在我的 api 接口(interface)中使用了字段参数,就像这样。

Call<String> matchWith(@Field("fbid") String fbid, @Field("matchwith") String matchwith);

很难为大对象编写,所以我决定使用 @Body 注释。但现在它在我的 mysql 数据库中发布空行/对象。 (在 api 接口(interface)中使用 @Field 注释我的代码正确插入数据)

这是我的代码

@POST("/insertuser.php")
Call<User> postUser(@Body User user);



Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://myurl.com")
.addConverterFactory(GsonConverterFactory.create())
.build();

Connect connect = retrofit.create(Connect.class);

Call<User> call = connect.postUser(user);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {

}

@Override
public void onFailure(Call<User> call, Throwable t) {

}
});

在我的对象类中,我使用了 @SerializedName@Expose 改造仍然插入空的我已经尝试过只使用 @SerilizedName@Expose 之后我什么也没用,但我得到了相同的结果。

最佳答案

@Field@Body 注释是有区别的。您的 API 可能只接受 form-data 形式的数据。这就是为什么当您通过请求正文(即使用 @Body 注释)发送数据时,您的数据被视为空数据的原因。

您可以更改您的 Web API 以接受数据作为请求正文,然后按您的使用方式使用。

More info

关于android - 改造发布空数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50665591/

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