導航:首頁 > 編程語言 > java生成ssl

java生成ssl

發布時間:2023-03-08 01:42:22

1. 求解java怎樣發送https請求

使用httpClient可以發送,具體的可以參考下面的代碼

SSLClient類,繼承至HttpClient

importjava.security.cert.CertificateException;
importjava.security.cert.X509Certificate;
importjavax.net.ssl.SSLContext;
importjavax.net.ssl.TrustManager;
importjavax.net.ssl.X509TrustManager;
importorg.apache.http.conn.ClientConnectionManager;
importorg.apache.http.conn.scheme.Scheme;
importorg.apache.http.conn.scheme.SchemeRegistry;
importorg.apache.http.conn.ssl.SSLSocketFactory;
importorg.apache.http.impl.client.DefaultHttpClient;
//用於進行Https請求的HttpClient
{
publicSSLClient()throwsException{
super();
SSLContextctx=SSLContext.getInstance("TLS");
X509TrustManagertm=newX509TrustManager(){
@Override
publicvoidcheckClientTrusted(X509Certificate[]chain,
StringauthType)throwsCertificateException{
}
@Override
publicvoidcheckServerTrusted(X509Certificate[]chain,
StringauthType)throwsCertificateException{
}
@Override
publicX509Certificate[]getAcceptedIssuers(){
returnnull;
}
};
ctx.init(null,newTrustManager[]{tm},null);
SSLSocketFactoryssf=newSSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
ClientConnectionManagerccm=this.getConnectionManager();
SchemeRegistrysr=ccm.getSchemeRegistry();
sr.register(newScheme("https",443,ssf));
}
}

HttpClient發送post請求的類

importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.List;
importjava.util.Map;
importjava.util.Map.Entry;
importorg.apache.http.HttpEntity;
importorg.apache.http.HttpResponse;
importorg.apache.http.NameValuePair;
importorg.apache.http.client.HttpClient;
importorg.apache.http.client.entity.UrlEncodedFormEntity;
importorg.apache.http.client.methods.HttpPost;
importorg.apache.http.message.BasicNameValuePair;
importorg.apache.http.util.EntityUtils;
/*
*利用HttpClient進行post請求的工具類
*/
publicclassHttpClientUtil{
publicStringdoPost(Stringurl,Map<String,String>map,Stringcharset){
HttpClienthttpClient=null;
HttpPosthttpPost=null;
Stringresult=null;
try{
httpClient=newSSLClient();
httpPost=newHttpPost(url);
//設置參數
List<NameValuePair>list=newArrayList<NameValuePair>();
Iteratoriterator=map.entrySet().iterator();
while(iterator.hasNext()){
Entry<String,String>elem=(Entry<String,String>)iterator.next();
list.add(newBasicNameValuePair(elem.getKey(),elem.getValue()));
}
if(list.size()>0){
UrlEncodedFormEntityentity=newUrlEncodedFormEntity(list,charset);
httpPost.setEntity(entity);
}
HttpResponseresponse=httpClient.execute(httpPost);
if(response!=null){
HttpEntityresEntity=response.getEntity();
if(resEntity!=null){
result=EntityUtils.toString(resEntity,charset);
}
}
}catch(Exceptionex){
ex.printStackTrace();
}
returnresult;
}
}

測試代碼

importjava.util.HashMap;
importjava.util.Map;
//對介面進行測試
publicclassTestMain{
privateStringurl="https://192.168.1.101/";
privateStringcharset="utf-8";
=null;

publicTestMain(){
httpClientUtil=newHttpClientUtil();
}

publicvoidtest(){
StringhttpOrgCreateTest=url+"httpOrg/create";
Map<String,String>createMap=newHashMap<String,String>();
createMap.put("authuser","*****");
createMap.put("authpass","*****");
createMap.put("orgkey","****");
createMap.put("orgname","****");
StringhttpOrgCreateTestRtn=httpClientUtil.doPost(httpOrgCreateTest,createMap,charset);
System.out.println("result:"+httpOrgCreateTestRtn);
}

publicstaticvoidmain(String[]args){
TestMainmain=newTestMain();
main.test();
}
}

2. java websocket 客戶端怎麼實現SSL認證或者進行不檢證,大家幫幫忙,急

不知道具體需求是什麼。如果用java
web作為服務端,那可以在web項目啟動的時候,增加socket監聽服務。在web項目的listener增加啟動類。
或者乾脆使用如netty這樣的io框架。

閱讀全文

與java生成ssl相關的資料

熱點內容
德語小說pdf 瀏覽:123
陝西聯通dns伺服器地址 瀏覽:937
js表格即時編譯 瀏覽:302
51單片機串口拓展 瀏覽:305
重裝系統後加密圖片損壞 瀏覽:463
電腦怎麼放大縮小app窗口 瀏覽:523
教育十APP學校怎麼更改 瀏覽:821
空調外機壓縮機熱保護 瀏覽:754
winlinux雙系統卸載 瀏覽:239
如何對安卓應用反編譯 瀏覽:410
鯤鵬pc伺服器是什麼 瀏覽:572
一級防震梁箍筋加密 瀏覽:928
linuxxampp64位 瀏覽:728
西安哪個app能買到東西 瀏覽:457
eps命令鍵 瀏覽:38
塑料文件夾的尺寸 瀏覽:210
君威壓縮機電磁閥 瀏覽:945
安卓6手機為什麼不能用app 瀏覽:860
什麼java編譯器支持中文 瀏覽:564
香港伺服器如何做代理 瀏覽:201