java - 在 OkHttpClient 中使用变量

标签 java android

我一直在尝试发送带有一些用户数据的 POST 请求。该请求似乎不完整。我需要这条线的帮助

OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
StringEntity postingString = new StringEntity(gson.toJson(pj));
RequestBody body = RequestBody.create(mediaType, "{\n   \"url\":\"https://okirizuri.herokuapp.com/check\",\"phone\":"  + phone + "\"}");
Request request = new Request.Builder()
        .url("https://okirizuri.herokuapp.com/lipa")
        .post(body)
        .addHeader("content-type", "application/json")
        .addHeader("cache-control", "no-cache")
        .build();
 String phone = editText.getText().toString().trim();

RequestBody body = RequestBody.create(mediaType, "{\n   \"url\":\"https://okirizuri.herokuapp.com/check\",\"phone\":"  + phone + "\"}");

电话是一个变量,它有一个用户号码,但它没有在端点上显示

最佳答案

在您的示例中,您在\"phone\": 之后缺少一个额外的双引号:这使其无效 json。您在电话号码的右侧转义了引号,但在左侧转义了引号。

RequestBody body = RequestBody.create(mediaType, "{\n   \"url\":\"https://okirizuri.herokuapp.com/check\",\"phone\":"  + phone + "\"}");

JSON:

{
    "url": "https://okirizuri.herokuapp.com/check",
    "phone": 555-555-5555"
}

应该是:

RequestBody body = RequestBody.create(mediaType, "{\n   \"url\":\"https://okirizuri.herokuapp.com/check\",\"phone\":\""  + phone + "\"}");

JSON:

{
    "url": "https://okirizuri.herokuapp.com/check",
    "phone": "555-555-5555"
}

关于java - 在 OkHttpClient 中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54204686/

相关文章:

Android 倾斜补偿指南针

android - react native 中的 "resource android:attr/fontVariationSettings not found."

java - 带有 CallableStatement.getResultSet() 的 NullPointerException

java swing - 从框架中删除 jpanel

java - 单击按钮以相同的形式打开文本 Pane

java - 如何在 truzip 中获取文件大小

Android 获取支持操作栏总是返回 NULL

android - 获取下一个闹钟的时间

android - 在 Fragment 中访问 TextView 抛出 NullPointerException

java - 如何从 Java 对象(REXP 对象)获取值?