HttpURLConnection POST 参数无法正常工作

HttpURLConnection POST parameters does not work correctly

我使用 POST 请求和参数创建了 HttpURLConnection 以发送到服务器。服务器响应:

Integrity constraint violation: Column 'operator_id' cannot be null

但是我在查询中明明发了。我尝试通过终端使用 curl,它工作正常。服务器接受查询并将其保存到数据库。我匹配了 curl 和 Android 调用中的所有参数值,但没有帮助。

这是 AsyncTask class。

public class HttpPost extends AsyncTask<String, String, String> {
  Context context;
  public HttpPost (Context context){
    this.context = context;
  }
   @Override
protected String doInBackground(String... params) {
    URL url;
    String response = "";
    try {
            url = new URL(params[0]);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            String query = "operator_id=1&date=*********";
            conn.setReadTimeout(15000);
            conn.setConnectTimeout(15000);
            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("Accept-Charset", "UTF-8");
            conn.setRequestMethod("POST");
            conn.setDoInput(true);
            conn.setDoOutput(true);

            OutputStream os = conn.getOutputStream();
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
            writer.write(query);
            writer.flush();
            writer.close();
            os.close();

            int responseCode = conn.getResponseCode();
            .......
            conn.disconnect();
    catch ( Exception e){
      e.printStackTrace();
    }
    return response;
}

这是 curl 调用

curl -H "Content-Type: application/json" -X POST -d '{"operator_id":1,"date":"",other value...}'  https://www.mywebsite.com/

有人知道我做错了什么吗?

尝试将字符串参数包装在有效的 JSON 中应该可行。

String query = "{\"operator_id\":1,\"date\":\"*********\"}";