https的POST方式调用API,返回Code:500

要调用的参数,两个HEAD:Referer和stime;两个BODY:userName和passWord。我参照别人的代码,用HttpsURLConnection来搞,结果总是返回500,也不清楚是怎么回事。。。请大佬帮忙。。。

public static void kkk() throws IOException {
        String httpsURL = "https://10.19.85.113:1443/v1/login/";
        String query = "userName=system&passWord=EHL_bluray123!@#";
        query = URLEncoder.encode(query,"UTF-8");
        URL myurl = new URL(httpsURL);
        long stime1=System.currentTimeMillis();
        String stimes=stime1+"";
        System.out.print(stimes+"\n");
        HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
        con.setRequestMethod("POST");
        String r=URLEncoder.encode("https://10.19.85.113/gdas");
        String s=URLEncoder.encode(stimes);
        con.setRequestProperty("Referer",r);
        con.setRequestProperty("stime",s);
        con.setRequestProperty("Content-length", String.valueOf(query.length())); 
        con.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 
        con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0;Windows98;DigExt)"); 
        con.setDoOutput(true); 
        con.setDoInput(true);
        DataOutputStream output = new DataOutputStream(con.getOutputStream());
        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());
}

有详细的异常信息,直接说500不清楚到底报啥错

谢谢关注,

Warning: URL Host: 10.19.85.113 vs. 10.19.85.113这个好像无关吧?

然后就是

Resp Code:500
Resp Message:null

正常500 是服务器错误。不知道是不是你的body的参数类型不对,看你写的应该是application/x-www-form-urlencoded,是不是要改成 application/json 方式。另外建议用postman 测试一下接口,可以直接生成java代码。

谢谢,我这就按这两个方法试一下。

返回500一般是服务器内部异常了,比如你传的参数不对,导致服务器错了。

谢谢,我再试试,瞎搞了一通,现在被搞成400了。。。