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());