在我的Android应用程序中,我需要将一个数组作为正文(有效载荷信息)发送到POST网址。
体内有两个参数:
1. "env" : "dev"
2. "dNumber" : tn("+1232323"); // here I need to send an array.
已修改的问题:我需要以[[123131“,” 4545545“]]之类的阵列形式发送电话
我将数组传递为创建的JSON数组,然后转换为字符串并传递。
private String tn(String tn) {
String json = "";
try {
JSONArray jsonArray = new JSONArray();
jsonArray.put(0, tn);
json = jsonArray.toString();
} catch (JSONException e) {
e.printStackTrace();
}
return json;
}
完整代码为:
try {
URL url;
HttpURLConnection urlConnection;
url = new URL(makeCallUrl);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/json");
urlConnection.setRequestProperty("Authorization", String.format("%s %s", "Basic", secretKey));
urlConnection.setUseCaches(false);
urlConnection.setDoOutput(true);
urlConnection.connect();
// Setup the body of the url
JSONObject json = new JSONObject();
json.put("env", "dev");
json.put("destNumbers", tn("+123123"));
// Write the body on the wire
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(urlConnection.getOutputStream()));
writer.write(json.toString());
writer.flush();
writer.close();
} catch (IOException e) {
Log.d(TAG, "IOException:" + e.getMessage());
e.printStackTrace();
}
如果我尝试此操作,则会收到400错误的请求异常。 请帮助我将数组传递给POST api
答案 0 :(得分:0)
我使用JSONArray解决了我的问题,并传递了数组。
if(getIntent().hasExtra("bank_name")) {
bank_name = getIntent().getStringExtra("bank_name");
}else{
bank_name = "?";
}
if(getIntent().hasExtra("type_name")) {
type_name = getIntent().getStringExtra("type_name");
}else{
type_name = "?";
}
if(getIntent().hasExtra("from_date")) {
from_date = getIntent().getStringExtra("from_date");
}else{
from_date = "?";
}
if(getIntent().hasExtra("to_date")) {
to_date = getIntent().getStringExtra("to_date");
}else{
to_date = "?";
}
现在我得到如下数组: destNumbers = [“ 3434343”,“ 3434334]
答案 1 :(得分:0)
更新您的tn()方法。代替返回String,它应该返回JSONArray。
private JSONArray tn(String tn) {
JSONArray jsonArray = new JSONArray();
try {
jsonArray.put(0, tn);
} catch (JSONException e) {
e.printStackTrace();
}
return jsonArray ;
}
尽管如果仍然发生400 Bad请求错误,则请使用json确认并验证请求有效负载。