這篇文章主要為大家展示了Java如何發(fā)送https請求,內(nèi)容簡而易懂,下面讓小編帶大家一起學習一下吧。
成都創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計,網(wǎng)站模板,微信公眾號開發(fā),軟件開發(fā),微信小程序開發(fā),10多年建站對三輪攪拌車等多個方面,擁有豐富建站經(jīng)驗。
1、前文:通過webService發(fā)送https請求,有兩種版本,一種是攜帶證書驗證(比較麻煩),另外一種就是直接忽略證書,本文提供的就是第二種(本人已測試過)
2、最簡易代碼:
import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.Reader; import java.net.MalformedURLException; import java.net.URL; import java.text.SimpleDateFormat; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLSession; @SuppressWarnings("all") public class TestAPI_https { public static void main(String args[]) throws Exception { new TestAPI_https().TestRiQingAPI_SaleOrder(); } public static void TestRiQingAPI_SaleOrder() throws Exception { String postData = getJson(); //String url = "https://*****"; String url = "https://*****"; HttpsURLConnection conn = null; OutputStream out = null; String rsp = null; byte[] byteArray = postData.getBytes("utf-8"); try { URL uri = new URL(url); conn = (HttpsURLConnection) uri.openConnection(); //忽略證書驗證--Begin conn.setHostnameVerifier(new TrustAnyHostnameVerifier()); //忽略證書驗證--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 (Exception e) { if(null!=out) out.close(); e.printStackTrace(); } } /** * getJson * */ private static String getJson() { return "{" + "\"name\"" + ":" + "\"robo_blogs_zh223\"" + "}"; } private static String getStreamAsString(InputStream stream, String charset) throws IOException { try { Reader reader = new InputStreamReader(stream, charset); StringBuilder response = new StringBuilder(); final char[] buff = new char[1024]; int read = 0; while ((read = reader.read(buff)) > 0) { response.append(buff, 0, read); } return response.toString(); } finally { if (stream != null) { stream.close(); } } } } //定制Verifier class TrustAnyHostnameVerifier implements HostnameVerifier { public boolean verify(String hostname, SSLSession session) { return true; } }
以上就是關(guān)于Java如何發(fā)送https請求的內(nèi)容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。