Java发送https请求代码实例
1、前文:通过webService发送https请求,有两种版本,一种是携带证书验证(比较麻烦),另外一种就是直接忽略证书,本文提供的就是第二种(本人已测试过)
2、最简易代码:
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.io.Reader;
importjava.net.MalformedURLException;
importjava.net.URL;
importjava.text.SimpleDateFormat;
importjavax.net.ssl.HostnameVerifier;
importjavax.net.ssl.HttpsURLConnection;
importjavax.net.ssl.SSLSession;
@SuppressWarnings("all")
publicclassTestAPI_https{
publicstaticvoidmain(Stringargs[])throwsException{
newTestAPI_https().TestRiQingAPI_SaleOrder();
}
publicstaticvoidTestRiQingAPI_SaleOrder()throwsException{
StringpostData=getJson();
//Stringurl="https://*****";
Stringurl="https://*****";
HttpsURLConnectionconn=null;
OutputStreamout=null;
Stringrsp=null;
byte[]byteArray=postData.getBytes("utf-8");
try{
URLuri=newURL(url);
conn=(HttpsURLConnection)uri.openConnection();
//忽略证书验证--Begin
conn.setHostnameVerifier(newTrustAnyHostnameVerifier());
//忽略证书验证--End
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Host",uri.getHost());
conn.setRequestProperty("Content-Type","application/json");
out=conn.getOutputStream();
out.write(byteArray);
out.close();
if(conn.getResponseCode()==200){
rsp=getStreamAsString(conn.getInputStream(),"utf-8");
}else{
rsp=getStreamAsString(conn.getErrorStream(),"utf-8");
}
System.out.println(rsp);
}catch(Exceptione){
if(null!=out)
out.close();
e.printStackTrace();
}
}
/**
*getJson
*
*/
privatestaticStringgetJson(){
return"{"+"\"name\""+":"+"\"robo_blogs_zh123\""+"}";
}
privatestaticStringgetStreamAsString(InputStreamstream,Stringcharset)throwsIOException{
try{
Readerreader=newInputStreamReader(stream,charset);
StringBuilderresponse=newStringBuilder();
finalchar[]buff=newchar[1024];
intread=0;
while((read=reader.read(buff))>0){
response.append(buff,0,read);
}
returnresponse.toString();
}finally{
if(stream!=null){
stream.close();
}
}
}
}
//定制Verifier
classTrustAnyHostnameVerifierimplementsHostnameVerifier{
publicbooleanverify(Stringhostname,SSLSessionsession){
returntrue;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。