原curl请求是这样,会返回400,在java里使用httpurlconnection实现获取400的错误信息时报异常,如下图,该怎么做?
代码如下:
try {
SSLContext sslContext=SSLContext.getInstance("SSL");
TrustManager[] tm={new MyX509TrustManager()};
MyX509TrustManager.trustAllHttpsCertificates();
HttpsURLConnection.setDefaultHostnameVerifier(hv);
sslContext.init(null, tm, new java.security.SecureRandom());
URL url = new URL(baseurl+httpurl);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoInput(true);
// 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
// 设置请求头部信息
connection.setRequestProperty("xxx", "xxx");
connection.setRequestProperty("xxx", "xxx");
os = connection.getOutputStream();
os.write(param.getBytes());
System.out.println(connection.getResponseCode());
is = connection.getInputStream();
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
StringBuffer sbf = new StringBuffer();
String temp = null;
// 循环遍历一行一行读取数据
while ((temp = br.readLine()) != null) {
sbf.append(temp);
sbf.append("\r\n");
}
result = sbf.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 关闭资源
if (null != br) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != os) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != is) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 断开与远程地址url的连接
connection.disconnect();
}
return result;
}
请各位帮忙指点下,谢谢