【问题标题】:Post body retrofit2 include curly brackets柱体改造 2 包括大括号
【发布时间】:2019-11-13 11:34:50
【问题描述】:

我想在改造中发布带有正文的请求,其中括号还有另一个括号 期待正文请求:{"attributes":{"data":"FOOBAR"},"deviceId":171,"type":"custom"}

我尝试过使用反斜杠,但总是收到错误的请求。

Activity.java

StringBuilder stringBuilder = new StringBuilder("{\"data\":\"");
                                stringBuilder.append(commandInput.getText());
                                stringBuilder.append("\"}");

                                Tasker task = new Tasker(idUnit, "custom", stringBuilder.toString());
                                Call<Tasker> call2 = mApiService.postCommand(task);
                                call2.enqueue(new Callback<Tasker>() {
                                    @Override
                                    public void onResponse(Call<Tasker> call, Response<Tasker> response) {
                                        Toast.makeText(CommandActivity.this, getString(R.string.command_sent), Toast.LENGTH_SHORT).show();
                                    }

                                    @Override
                                    public void onFailure(Call<Tasker> call, Throwable t) {
                                        Toast.makeText(CommandActivity.this, getString(R.string.command_failed), Toast.LENGTH_SHORT).show();
                                    }
                                });

Tasker.java

public class Tasker {
    private long deviceId;
    private String type;
    private String attributes;

    public Tasker(long deviceId, String type, String attributes) {
        this.deviceId = deviceId;
        this.type = type;
        this.attributes = attributes;
    }
}

预期结果负载:

{"attributes":{"data":"FOOBAR"},"deviceId":171,"type":"custom"}

实际输出载荷:

{"attributes":"{\"data\":\"FOOBAR\"}","deviceId":171,"type":"custom"}

【问题讨论】:

  • commandInput.getText() 是什么?看来你放的斜线太多了。

标签: java android json rest retrofit2


【解决方案1】:

您需要一些类或 Map 对象来保存属性,而不是 String attributes

另外,尝试使用 JsonObject 类,而不仅仅是 StringBuilder

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 2015-06-29
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多