java 发送http和https请求的实例
HTTP请求:
如果需要Json格式的自己转下,度娘上N种姿势…
//处理http请求requestUrl为请求地址requestMethod请求方式,值为"GET"或"POST" publicstaticStringhttpRequest(StringrequestUrl,StringrequestMethod,StringoutputStr){ StringBufferbuffer=null; try{ URLurl=newURL(requestUrl); HttpURLConnectionconn=(HttpURLConnection)url.openConnection(); conn.setDoOutput(true); conn.setDoInput(true); conn.setRequestMethod(requestMethod); conn.connect(); //往服务器端写内容也就是发起http请求需要带的参数 if(null!=outputStr){ OutputStreamos=conn.getOutputStream(); os.write(outputStr.getBytes("utf-8")); os.close(); } //读取服务器端返回的内容 InputStreamis=conn.getInputStream(); InputStreamReaderisr=newInputStreamReader(is,"utf-8"); BufferedReaderbr=newBufferedReader(isr); buffer=newStringBuffer(); Stringline=null; while((line=br.readLine())!=null){ buffer.append(line); } }catch(Exceptione){ e.printStackTrace(); } returnbuffer.toString(); }
HTTPS请求:
1、https和http的区别我这里就不介绍了,在java中访问https链接的话需要有相应的SSL证书,如果没有就无法访问(使用http访问https会返回403),所以我们要先自定义一个信任管理器。实现java自带的X509TrustManger接口,代码:
importjava.security.cert.CertificateException; importjava.security.cert.X509Certificate; importjavax.net.ssl.X509TrustManager; publicclassMyX509TrustManagerimplementsX509TrustManager{ @Override publicvoidcheckClientTrusted(X509Certificate[]chain,StringauthType) throwsCertificateException{ //TODOAuto-generatedmethodstub } @Override publicvoidcheckServerTrusted(X509Certificate[]chain,StringauthType) throwsCertificateException{ //TODOAuto-generatedmethodstub } @Override publicX509Certificate[]getAcceptedIssuers(){ //TODOAuto-generatedmethodstub returnnull; } }
2、然后我们就可以使用https请求了:
/* *处理httpsGET/POST请求 *请求地址、请求方法、参数 **/ publicstaticStringhttpsRequest(StringrequestUrl,StringrequestMethod,StringoutputStr){ StringBufferbuffer=null; try{ //创建SSLContext SSLContextsslContext=SSLContext.getInstance("SSL"); TrustManager[]tm={newMyX509TrustManager()}; //初始化 sslContext.init(null,tm,newjava.security.SecureRandom());; //获取SSLSocketFactory对象 SSLSocketFactoryssf=sslContext.getSocketFactory(); URLurl=newURL(requestUrl); HttpsURLConnectionconn=(HttpsURLConnection)url.openConnection(); conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); conn.setRequestMethod(requestMethod); //设置当前实例使用的SSLSoctetFactory conn.setSSLSocketFactory(ssf); conn.connect(); //往服务器端写内容 if(null!=outputStr){ OutputStreamos=conn.getOutputStream(); os.write(outputStr.getBytes("utf-8")); os.close(); } //读取服务器端返回的内容 InputStreamis=conn.getInputStream(); InputStreamReaderisr=newInputStreamReader(is,"utf-8"); BufferedReaderbr=newBufferedReader(isr); buffer=newStringBuffer(); Stringline=null; while((line=br.readLine())!=null){ buffer.append(line); } }catch(Exceptione){ e.printStackTrace(); } returnbuffer.toString(); }
以上这篇java发送http和https请求的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。