java - 添加字符串时,我在 MediaType OkHttp3 中得到 null
问题描述
为什么我会为空?为什么传输的是电话号码,而不是通常的字符串?我整天都在研究这个问题,请帮助。
firstName_str = firstName.getText().toString();
ip_str = ip;
lastName_str = lastName.getText().toString();
email_str = email.getText().toString();
getPhoneNumber_str = firebaseAuth.getCurrentUser().getPhoneNumber();
getPhoneNumber_str = getPhoneNumber_str.replace("+", "");
Log.d("ccp_str2", "firstName_str: " + firstName_str);
Log.d("ccp_str2", "ip_str: " + ip_str);
Log.d("ccp_str2", "lastName_str: " + lastName_str);
Log.d("ccp_str2", "email_str: " + email_str);
Log.d("ccp_str2", "getPhoneNumber_str: " + getPhoneNumber_str);
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
String json = "{\n \"ai\": \"222222\",\n \"ci\": \"111\",\n \"gi\": \"111\",\n \"userip\": "+ip_str+",\n \"firstname\": "+firstName_str+",\n \"lastname\": "+lastName_str+",\n \"email\": "+email_str+",\n \"password\": \"Aa12345!\",\n \"phone\": "+getPhoneNumber_str+",\n \"so\":\"start\"\n}";
RequestBody body = RequestBody.create(JSON, json);
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://platform.link.com/api/signup/procform")
.method("POST", body)
.addHeader("x-trackbox-username", "name")
.addHeader("x-trackbox-password", "pass")
.addHeader("x-api-key", "key")
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
String str_leads = response.body().string();
Log.d("str_leads", "str_leads: " + str_leads);
记录 ccp_str2:
ccp_str2: firstName_str: TestName
ccp_str2: ip_str: 111.111.111.111
ccp_str2: lastName_str: TestLast
ccp_str2: email_str: test@gmail.com
ccp_str2: getPhoneNumber_str: 441234567890
记录 str_leads:
str_leads: {"status":false,"data":"IP is not valid","addonData":{"ai":"222222","ci":"111","gi":"111","userip":null,"firstname":null,"lastname":null,"email":null,"password":"Aa12345!","phone":441234567890,"so":"start"}}
解决方案
这部分 :
\"phone\": "+getPhoneNumber_str+",\n
需要是 :
\"phone\": \""+getPhoneNumber_str+"\",\n
您需要在变量之间创建转义引号以正确连接。
推荐阅读
- javascript - 尝试在本地计算机上为 NEM 创建多重签名帐户但出现错误
- angularjs - 如何在指令中使用控制器范围而不在指令中使用控制器选项
- c# - 如何在c#中过滤包含url的DataRow列
- tensorflow - 如何使用 tf.estimator 保存张量流模型
- python-3.x - 从 Kubernetes pod 修改文件
- excel - VBA代码突出显示不包含特定文本的单元格
- tsql - 将 SQL Server 表中的行转换为列
- node.js - 在 Jest 中测试失败时如何打印请求和响应?
- asp.net - 如何在窗口警报后禁用浏览器后退按钮
- ionic-framework - 如何限制用户在 Ionic 4 日期选择器中仅选择当前日期后 10 天