HttpsURLConnection如何发送POST请求的body?

java程序,要调用一个https的POST的api,两个参数Referer和stime写的类型是HEAD,两个参数userName和passWord写的类型是BODY。

我用HttpsURLConnection来传参,getResponseCode总是报500,问了系统开发,他觉得是我传参的时候好像不太对,传到url上去了,我在网上查了半天也没看明白body传参到底应该怎么传,求助大佬赐教。

补充:同样的代码,我用百度的地址,就能获得200回复应该是成功了。

    public static void kkk() throws IOException {
        SKIP skip = new SKIP();//尝试避开证书
        try {
            skip.ignoreSsl();
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        String httpsURL = "https://10.19.85.113:8003/v1/login";
        URL myurl = new URL(httpsURL);    
        HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
        con.setRequestMethod("POST");
        long stime1=System.currentTimeMillis();
        String s=stime1+"";
        String r = "https://10.19.85.113/gdas";  
        con.setRequestProperty("Content-Type","application/json; charset=utf-8"); 
        con.setRequestProperty("Referer",r);
        con.setRequestProperty("stime",s);
        con.setDoOutput(true); 
        con.setDoInput(true);
        String query = "{\"userName\":\"system\",\"passWord\":\"EHL_bluray123!@#\"}";
        con.connect();
        OutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream(),"UTF-8");
        writer.write(query);
        System.out.print(query);
        writer.flush();
        //output.writeChars(query);
        //query=test.toString();
        //System.out.print(query+"\n");
        //output.write(query.getBytes());
        //output.close();
        //DataInputStream input = new DataInputStream( con.getInputStream());
        //for( int c = input.read(); c != -1; c = input.read() ) 
        //System.out.print( (char)c ); 
        //input.close();
        System.out.println("Resp Code:"+con.getResponseCode()); 
        System.out.println("Resp Message:"+ con.getResponseMessage());

`public class HTTPClassExample{
   public static void main(String[] args) {
        try{
            URL url = new URL("http://localhost:4567/");
            HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
            httpCon.setDoOutput(true);
            httpCon.setRequestMethod("POST");
            httpCon.connect();
            OutputStream os = httpCon.getOutputStream();
            OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");    
            osw.write("Just Some Text");
            System.out.println(httpCon.getResponseCode());
            System.out.println(httpCon.getResponseMessage());
            osw.flush();
            osw.close();  
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }
}

看了下没看出有啥问题,不过还是用个http封装吧,功能更强用起来也方便