使用单个字符串将JSON发布到服务器

时间:2019-05-21 10:39:48

标签: 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), "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;
    }

1 个答案:

答案 0 :(得分:1)

我可以理解您的问题。您将其作为原始数据传递。您需要将其格式化为JSON数据。

defaultBuildName

只需尝试一下。希望这会起作用。祝你有美好的一天!