android - 如何使用 Retrofit 发布复杂的 JSON 参数

标签 android json retrofit

我需要做的 Post 请求应该是这样的

{
"project": {
    "name": "newname123",
    "identifier": "id55"},
"key":"8f583ad25100575b974062e0cee43e47aa158e4e"}

我能够使用 Postman 中的原始实现将它发送到服务器,但不知道如何使用表单数据发送它

这是我的界面

@FormUrlEncoded
@POST("projects.json")
Call<Project> CreateProject(@Field(value = "project") ProjectToSend project,
                            @Field("key") String key);

无论我尝试使用@body 还是@field,它都不起作用。

ProjectToSend 类

public class ProjectToSend {
private String name;
private String identifier;

public ProjectToSend(String name, String identifier) {
    this.name = name;
    this.identifier = identifier;

最佳答案

创建两个类来表示完整的 JSON,如下所示:

public class Project {
    private ProjectToSend project;
    private String key;

    // getters and setters
}

public class ProjectToSend {
    private String name;
    private String identifier;

    // getters and setters
}

然后调用:

@POST("put/the/url/here")
Call<Project> createUser(@Body Project project);

关于android - 如何使用 Retrofit 发布复杂的 JSON 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36961447/

相关文章:

java - Android Retrofit 从服务器下载/读取文本文件

java - 如果网站本身不支持推送通知,如何实现推送通知?

java - 如果我先放置 ScrollView 然后布局,则布局不会显示

android - list 中 Activity 样式更改时的选项菜单样式更改

javascript - 更新 JSON 并刷新​​页面时使用旧版本的 JSON

Javascript - 转换名称 :ItemName/Value:ItemValue Objects to Regular ItemName:ItemValue JSON

android - 如何在android Listview上显示数据库内容?

android - 无法解决从Android支持存储库(包括Google的Maven)的导入

javascript - JSON 解码不适用于 PHP

Android - 无法使用 Retrofit 在变量名中获取带破折号的整数