博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信公众号开发--访问网络用到的工具类
阅读量:4499 次
发布时间:2019-06-08

本文共 3459 字,大约阅读时间需要 11 分钟。

网络的工具类,url,方法名“POST/GET”二选一不填为GET,参数(POST才需要填)

import javax.net.ssl.*;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.URL;import java.net.URLEncoder;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;/** * 访问网络用到的工具类 */public class NetWorkHelper {    /**     * 发起Https请求     * @param reqUrl 请求的URL地址     * @param requestMethod     * @return 响应后的字符串     */    public String getHttpsResponse(String reqUrl, String requestMethod,String outputStr) {        URL url;        InputStream is;        String resultData = "";        try {            url = new URL(reqUrl);            HttpsURLConnection con = (HttpsURLConnection) url.openConnection();            TrustManager[] tm = {xtm};            SSLContext ctx = SSLContext.getInstance("TLS");            ctx.init(null, tm, null);            con.setSSLSocketFactory(ctx.getSocketFactory());            con.setHostnameVerifier(new HostnameVerifier() {                @Override                public boolean verify(String arg0, SSLSession arg1) {                    return true;                }            });                        con.setDoInput(true); //允许输入流,即允许下载            //在android中必须将此项设置为false            con.setDoOutput(true); //允许输出流,即允许上传            con.setUseCaches(false); //不使用缓冲            if (null != requestMethod && !requestMethod.equals("")) {                con.setRequestMethod(requestMethod); //使用指定的方式            } else {                con.setRequestMethod("GET"); //使用get请求            }            con.setRequestProperty("content-type",                    "application/x-www-form-urlencoded");            // 当outputStr不为null时向输出流写数据            if (null != outputStr) {                OutputStream outputStream = con.getOutputStream();                // 注意编码格式                outputStream.write(outputStr.getBytes("UTF-8"));                outputStream.close();            }            is = con.getInputStream();   //获取输入流,此时才真正建立链接            InputStreamReader isr = new InputStreamReader(is);            BufferedReader bufferReader = new BufferedReader(isr);            String inputLine;            while ((inputLine = bufferReader.readLine()) != null) {                resultData += inputLine + "\n";            }           // System.out.println(resultData);        } catch (Exception e) {            e.printStackTrace();        }        return resultData;    }    X509TrustManager xtm = new X509TrustManager() {        @Override        public X509Certificate[] getAcceptedIssuers() {            return null;        }        @Override        public void checkServerTrusted(X509Certificate[] arg0, String arg1)                throws CertificateException {        }        @Override        public void checkClientTrusted(X509Certificate[] arg0, String arg1)                throws CertificateException {        }    };    /**     * 对URL地址进行EnCode处理     * @param url     * @return     */    public static String urlEnCode(String url)    {        String enCodedUrl = "";        try        {            enCodedUrl = URLEncoder.encode(url, "utf-8");        }        catch (UnsupportedEncodingException e)        {            // TODO Auto-generated catch block            e.printStackTrace();            System.out.println("转码失败!");        }        return enCodedUrl;    }}

 

转载于:https://www.cnblogs.com/chaoswu/p/10189245.html

你可能感兴趣的文章
Python学习笔记day2(python基础一)
查看>>
【QC】安装
查看>>
628. Maximum Product of Three Numbers
查看>>
log4j Spring aop 注解的日志管理
查看>>
Spring cloud实战 从零开始一个简单搜索网站_Hystrix断路由的实现(三)
查看>>
Android服务Service
查看>>
sqlalchemy学习(一)
查看>>
silverlight Image Source URI : 一个反斜杠引发的血案
查看>>
Windows Phone开发(35):使用Express Blend绘图 转:http://blog.csdn.net/tcjiaan/article/details/7493010...
查看>>
Windows Phone开发(33):路径之其它Geometry 转:http://blog.csdn.net/tcjiaan/article/details/7483835...
查看>>
Android入门(9)AudioRecord和AudioTrack类的使用【转】http://blog.sina.com.cn/s/blog_6309e1ed0100j1rw.html...
查看>>
mybatis整合Spring编码
查看>>
第七章 路由 68 路由-前端路由和后端路由的概念
查看>>
dpkg包管理
查看>>
前端JS利用canvas的drawImage()对图片进行压缩
查看>>
一键切换皮肤的解决思想及iframe嵌套时寻找下级iframe的方法
查看>>
van-dialog 组件调用 报错
查看>>
VC++中的__super::
查看>>
DS1-14
查看>>
c# Mongodb两个字段不相等 MongoDB原生查询
查看>>