要调用的参数,两个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了。。。