标签: java

  • JAVA的各种HTTP/HTTPS模拟请求使用经验汇总

    https:

    try{
    			
    
    			
    		StringBuffer reultBuffer = new StringBuffer();
    			
    		KeyStore keyStore  = KeyStore.getInstance("PKCS12");
    		FileInputStream instream = new FileInputStream(new File("/home/certificate/apiclient_cert.p12"));
    	        String passwordssss=mch_id;
    	        keyStore.load(instream, passwordssss.toCharArray());	//证书密码
    	        instream.close();
    	        SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, passwordssss.toCharArray()).build();	//证书密码(初始是商户ID)
    	        SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext,new String[] { "TLSv1" },null,SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
    	        
    		HttpPost httpPost = new HttpPost("https://fraud.mch.weixin.qq.com/risk/getpublickey");
    	        CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();
    	        httpPost.setHeader("Content-Type", "text/xml; charset=UTF-8");
    	        httpPost.setEntity(new StringEntity(str_lingqian.toString(),"UTF-8"));
    	        
    	        CloseableHttpResponse response      = null;
    	        InputStream inputStream		        = null;
    	        InputStreamReader inputStreamReader = null;
    	        BufferedReader bufferedReader       = null;
    	        try {
    	        	response = httpclient.execute(httpPost);
    	        	HttpEntity entity = response.getEntity();
    				if (entity!=null){
    					inputStream = entity.getContent();
    					inputStreamReader = new InputStreamReader(inputStream,"UTF-8");
    					bufferedReader = new BufferedReader(inputStreamReader);
    					String str = null;
    					while ((str = bufferedReader.readLine()) != null) {
    						reultBuffer.append(str);
    						System.out.println(str);
    					}
    				}
    			} catch (ClientProtocolException e) {
    				e.printStackTrace();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}finally{
    
    				httpclient.close();
    				response.close();
    				bufferedReader.close();
    				inputStreamReader.close();
    				inputStream.close();
    				inputStream = null;
    			}
    	     
    	        Document document = DocumentHelper.parseText(reultBuffer.toString());
    	        Element rootElm = document.getRootElement();
    	        if(rootElm.elementText("return_code").toString().equals("SUCCESS") && rootElm.elementText("result_code").toString().equals("SUCCESS") ){
    	        	pub_key = rootElm.elementText("pub_key").toString();
    	        	System.out.println("pub_key = "+pub_key);
    	        }else{	        	
    	        	return status;
    	        }
    			
    }catch(Exception e){
    	e.printStackTrace();
    }

     

  • java中实现HashMap中的按照key的字典顺序排序输出

     HashMap<String, String> maptest =new  HashMap<String, String>();
    		 maptest.put("1天","day1");
    		 maptest.put("5天","day5");
    		 maptest.put("4天","day4");
    		 maptest.put("2天","day2");
    		 maptest.put("3天","day3");
    		 
    		 Collection<String> keyset= maptest.keySet();
    		 List<String> list = new ArrayList<String>(keyset);
    		 
    		 //对key键值按字典升序排序
    		 Collections.sort(list);
    		 
    		 
    		 for (int i = 0; i < list.size(); i++) {
    			 System.out.println("key键---值: "+list.get(i)+","+maptest.get(list.get(i)));
    		 }

     

  • 在struts2上获取包含参数的完整的url

    Map map = request.getParameterMap();
    Iterator it = map.keySet().iterator();
    String paramStr = "";
    while(it.hasNext()){
    	String key = it.next().toString();
    	String value = request.getParameter(key);
    	paramStr += key + "=" + value + "&";
    }
    //完整的请求
    System.out.println(request.getRequestURL()+"?"+paramStr);

     

  • 用java清除字符串里的样式标签

    java 清除 HTML标签格式、CSS 样式

    JAVA代码可以这样写:

    public static String delTagsFContent(String content){
    String strHtml="";//HTML文本代码
    String strClear=strHtml.replaceAll( ".*?(.*?)<\\/body>", "$1"); //读出body内里所有内容
    strClear=strClear.replaceAll("</?[^/?(br)|(p)][^><]*>","");//保留br标签和p标签
    system.out.println(strClear);//输出结果
    }

    如果要保留IMG标签的话,正则表达式就是:</?[^/?(img)][^><]*>

    如果想保留更多的标签,只在正则表达式改一下就可以了, </?[^/?(img)|(p)][^><]*> 这个保留(这里写的保留了img,p这两个标签)你指定的标签,其他的(包括font)全去掉, 如果你还有其他的标签想保留,直接在里面加一个 |(xxx)就行了

    想去掉所有的标签的话正则表达式为:</?[a-zA-Z]+[^><]*>

  • JDK安装与环境变量配置

    安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。(不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹会出错)

    1:安装jdk 随意选择目录 只需把默认安装目录 \java 之前的目录修改即可
    2:安装jre→更改→ \java 之前目录和安装 jdk 目录相同即可
    注:若无安装目录要求,可全默认设置。无需做任何修改,两次均直接点下一步。

    安装完JDK后配置环境变量  计算机→属性→高级系统设置→高级→环境变量

    系统变量→新建 JAVA_HOME 变量 。
    变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0)

    系统变量→寻找 Path 变量→编辑
    在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
    (注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

    系统变量→新建 CLASSPATH 变量
    变量值填写   .%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)
    系统变量配置完毕

    检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)

  • 【转】JPEGImageEncoder编译有关问题

    解决:Access restriction: The type JPEGImageEncoder is not accessible due to restriction

    在Eclipse中处理图片,需要引入两个包:
    import com.sun.image.codec.jpeg.JPEGCodec;
    import com.sun.image.codec.jpeg.JPEGImageEncoder;
    报错:
    Access restriction: The type JPEGImageEncoder is not accessible due to restriction on required library C:\Java\jre1.6.0_07\lib\rt.jar

    此时解决办法:
    Eclipse 默认把这些受访问限制的API设成了ERROR。

    只 要把Windows-Preferences-Java-Complicer- Errors/Warnings里面的Deprecated and restricted API中的Forbidden references(access rules)选为Warning就可以编译通过