Android 使用单个字符串将JSON发布到服务器
我将数据作为单个字符串发布到服务器。这不是发帖。我得到了回应 我试过截击和改装。但我想在正常的HTTP连接中尝试。我不想用别的东西Android 使用单个字符串将JSON发布到服务器,android,json,post,Android,Json,Post,我将数据作为单个字符串发布到服务器。这不是发帖。我得到了回应 我试过截击和改装。但我想在正常的HTTP连接中尝试。我不想用别的东西 String api_url = "http://mywebsite.com/blah_blah"; String book_now_request = "user_id=" + URLEncoder.encode(user_id, "UTF-8") + "&src=" + URLEncoder.encode(String.valueOf(src
String api_url = "http://mywebsite.com/blah_blah";
String book_now_request = "user_id=" + URLEncoder.encode(user_id, "UTF-8") + "&src=" + URLEncoder.encode(String.valueOf(src), "UTF-8") + "&src_lng=" + URLEncoder.encode(String.valueOf(src_lng) , "UTF-8" );
JSONObject response_data = call_api(api_url, book_now_request);
public JSONObject call_api(String api_url, String request_data) {
try {
URL url = new URL(api_url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
Log.e("request_data", request_data);
writer.write(request_data);
writer.flush();
writer.close();
os.close();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = "";
String response = "";
while ((line = bufferedReader.readLine()) != null) {
response += line;
}
Log.d("API response", response);
JSONObject response_data = new JSONObject(response);
Log.e("J Response",response_data.toString());
return response_data;
} catch (Exception e) {
// Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_LONG).show();
Log.e("Exception", e.toString());
}
return null;
}
我能理解你的问题。您可以将其作为原始数据传递。您需要将其格式化为JSON数据
String book_now_request = "{\"user_id\":\"key\",\"key\":\"value\",\"key\":\"value\"}"
试试这个。希望这能奏效。祝你今天愉快 你到底遇到了什么问题?我得到了错误的响应,这意味着它不是post正确的。这种格式正确吗?如果你使用post方法从正文中获取数据,那么尝试使用服务器端的原始数据获取数据。您得到的响应是什么?我必须将此数据发布到服务器。如果这些数据是正确的。。服务器将返回成功。否则它将返回未发布的数据。我得到的数据没有公布。我怀疑这个字符串会转换成json对象并发布,或者它会作为原始数据发布。我发布它的方式和url一样。现在它起作用了。再次感谢