短url生成类

ShortUrl.java

/** * Project Name:report * File Name:ShortUrl.java * Package Name:com.riambsoft.report.util * Date:2013-3-12上午11:16:53 * Copyright (c) 2013, riambsoft All Rights Reserved. * */  package com.riambsoft.report.util;  import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;  import com.itextpdf.text.log.SysoLogger;  /** * ClassName:ShortUrl <br/> Function: TODO ADD FUNCTION. <br/> Reason: TODO ADD REASON. <br/> Date: 2013-3-12 上午11:16:53 <br/> *  * @author Administrator * @version * @since JDK 1.5 * @see */public class ShortUrl {      public static void main(String[] args) throws MalformedURLException {        String url = "http://localhost:8080/report/outPdf?docNo=inv4200_p&progCode=inv4200_p&criDesc=-+2013%2F03+%E5%B8%90%E7%B0%BF&sourceflag=&isLocal=false&rs10ucode=adnin&querySql=++company_code%3D%2700%27+and++warehouse_code+in++%28select+warehouse_code+from+inv_user_def++where+company_code%3D%2700%27+and+user_unique_no%3D%2700382%27%29+and+exists%28select+item_code+from+inv_master+where+inv_master.company_code+%3D+inv_book_master.company_code+and+inv_master.item_code+%3D+inv_book_master.item_code%29++order+by++warehouse_code%2C+item_code&companyCode=00&sessionCode=388CEF0500AE4006ADE8E052C227BC70";        for (String string : ShortText(url)) {            print(string);        }    }      public static String[] ShortText(String string) {        String key = "XuLiang"; // 自定义生成MD5加密字符串前的混合KEY        String[] chars = new String[] { // 要使用生成URL的字符        "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };          String hex = Encript.md5(key + string);        int hexLen = hex.length();        int subHexLen = hexLen / 8;        String[] ShortStr = new String[4];          for (int i = 0; i < subHexLen; i++) {            String outChars = "";            int j = i + 1;            String subHex = hex.substring(i * 8, j * 8);            long idx = Long.valueOf("3FFFFFFF", 16) & Long.valueOf(subHex, 16);              for (int k = 0; k < 6; k++) {                int index = (int) (Long.valueOf("0000003D", 16) & idx);                outChars += chars[index];                idx = idx >> 5;            }            ShortStr[i] = outChars;        }          return ShortStr;    }      public static URL ExpandUrl(URL shortUrl) {        URL longUrl = null;        try {            HttpURLConnection req = (HttpURLConnection) shortUrl                    .openConnection();            req.setInstanceFollowRedirects(false);            req.connect();            if ((req.getResponseCode() == req.HTTP_MOVED_TEMP)||(req.getResponseCode()==req.HTTP_MOVED_PERM)) {                longUrl = new URL(req.getHeaderField("Location"));            }        } catch (Exception e) {            longUrl = null;        }        return longUrl;      }          private static void print(String messagr) throws MalformedURLException {        System.out.println(ExpandUrl(new URL("http://nutz.cn/1L")));         System.out.println(messagr);    }  }

Encript.java

/** * Project Name:report * File Name:ShortUrlUtil.java * Package Name:com.riambsoft.report.util * Date:2013-3-12上午11:07:16 * Copyright (c) 2013, riambsoft All Rights Reserved. * */  package com.riambsoft.report.util;  import java.security.MessageDigest;  /** * ClassName:ShortUrlUtil <br/> Function: TODO ADD FUNCTION. <br/> Reason: TODO ADD REASON. <br/> Date: 2013-3-12 上午11:07:16 <br/> *  * @author Administrator * @version * @since JDK 1.5 * @see */public class Encript {      // 十六进制下数字到字符的映射数组    private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };      /** 把inputString加密 */    public static String md5(String inputStr) {        return encodeByMD5(inputStr);    }      /**     * 验证输入的密码是否正确     *      * @param password     *            真正的密码(加密后的真密码)     * @param inputString     *            输入的字符串     * @return 验证结果,boolean类型     */    public static boolean authenticatePassword(String password, String inputString) {        if (password.equals(encodeByMD5(inputString))) {            return true;        } else {            return false;        }    }      /** 对字符串进行MD5编码 */    private static String encodeByMD5(String originString) {        if (originString != null) {            try {                // 创建具有指定算法名称的信息摘要                MessageDigest md5 = MessageDigest.getInstance("MD5");                // 使用指定的字节数组对摘要进行最后更新,然后完成摘要计算                byte[] results = md5.digest(originString.getBytes());                // 将得到的字节数组变成字符串返回                String result = byteArrayToHexString(results);                return result;            } catch (Exception e) {                e.printStackTrace();            }        }        return null;    }      /**     * 轮换字节数组为十六进制字符串     *      * @param b     *            字节数组     * @return 十六进制字符串     */    private static String byteArrayToHexString(byte[] b) {        StringBuffer resultSb = new StringBuffer();        for (int i = 0; i < b.length; i++) {            resultSb.append(byteToHexString(b[i]));        }        return resultSb.toString();    }      // 将一个字节转化成十六进制形式的字符串    private static String byteToHexString(byte b) {        int n = b;        if (n < 0)            n = 256 + n;        int d1 = n / 16;        int d2 = n % 16;        return hexDigits[d1] + hexDigits[d2];    }      /**     * main:(这里用一句话描述这个方法的作用). <br/>     *      * @param args     * @since JDK 1.5     */    public static void main(String[] args) {          // TODO Auto-generated method stub      }  }

短url还原工具类

public static URL ExpandUrl(URL shortUrl) {        URL longUrl = null;        try {            HttpURLConnection req = (HttpURLConnection) shortUrl                    .openConnection();            req.setInstanceFollowRedirects(false);            req.connect();            if ((req.getResponseCode() == req.HTTP_MOVED_TEMP)||(req.getResponseCode()==req.HTTP_MOVED_PERM)) {                longUrl = new URL(req.getHeaderField("Location"));            }        } catch (Exception e) {            longUrl = null;        }        return longUrl;       }

时间: 2024-12-19 13:53:31

短url生成类的相关文章

小巧的php文档生成类

在项目开发中发现对php的文档缺少管理,别人写了一个,功能不多 <?php/*** 类名: doc* 描述: 文档生成类* 其他: 可以对目录进行过滤,设置好源目录后,请用绝对路径指定生成目录,模式可调,模式* 1为常规类型,即以 斜线**开头,以*斜线 结束* 2为扩展类型,凡是 斜线*开头以*斜线 结束的部分都将成为文档的一部分*/class doc{ var $docdirname; var $docdir; /** * 函数名称: doc() * 函数功能: 构造 * 输入参数: non

rss2生成类

rss <? php/**//* * @(#)Rss2Gen.inc.php (beta) 2005/2/19 * * exblog RSS2 生成类,实现了RSS2规范中的大部分内容. * * 使用方法请见本类底部(Rss2Gen类使用注释)信息. * * 本程序为免费程序,源代码使用者可任意更改(请勿用于商业用途),但请保留本版权信息! * * @author HexUzHoNG <hexuzhong@163.com> * @version beta-2, 2005-03-11 *

PHP微信开发之二维码生成类

  这篇文章主要介绍了PHP微信开发之二维码生成类,本文使用微信接口实现二维码的生成,并直接给出示例代码,需要的朋友可以参考下 ? /** * Created by PhpStorm. * User: bin * Date: 15-1-16 * Time: 上午9:48 */ namespace HomeCommon; // 微信处理类 set_time_limit(30); class Weixin{ //构造方法 static $qrcode_url = "https://api.weixi

php实现的RSS生成类实例

  php实现的RSS生成类实例          这篇文章主要介绍了php实现的RSS生成类,实例分析了RSS生成类的原理.定义与使用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了php实现的RSS生成类.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

php实现的RSS生成类实例_php技巧

本文实例讲述了php实现的RSS生成类.分享给大家供大家参考.具体如下: class RSS { var $title; var $link; var $description; var $language = "en-us"; var $pubDate; var $items; var $tags; function RSS() { $this->items = array(); $this->tags = array(); } function addItem($ite

个人写的PHP验证码生成类分享_php实例

此验证码类直接拿去就可以用,也可以参考! 其中类成员codestr是生成的验证码字符串: <?php /** * 验证码 */ class Code{ // 1. 定义各个成员 有宽.高.画布.字数.类型.画类型 private $width; //宽度 private $height; //高度 private $num; //验证码字数 private $imgType; //生成图片类型 private $Type; //字串类型 1,2,3 三个选项 1 纯数字 2 纯小写字母 3 大小

Java二维码登录流程实现代码(包含短地址生成,含部分代码)_java

近年来,二维码的使用越来越风生水起,笔者最近手头也遇到了一个需要使用二维码扫码登录网站的活,所以研究了一下这一套机制,并用代码实现了整个流程,接下来就和大家聊聊二维码登录及的那些事儿. 二维码原理 二维码是微信搞起来的,当年微信扫码二维码登录网页微信的时候,感觉很神奇,然而,我们了解了它的原理,也就没那么神奇了.二维码实际上就是通过黑白的点阵包含了一个url请求信息.端上扫码,请求url,做对应的操作. 一般性扫码操作的原理 微信登录.支付宝扫码支付都是这个原理: 1. 请求二维码 桌面端向服务

javascript-如何看懂这段js生成类的代码?

问题描述 如何看懂这段js生成类的代码? 特别是那句this.init.apply,本来的应用上下文就是this,为什么要加上apply?还有为什么不直接new klass,而是嵌套了一个class函数?希望能完整的解释下,谢谢! 解决方案 http://www.cnblogs.com/ljchow/archive/2010/06/08/1753526.htmlhttp://2660311.blog.51cto.com/2650311/1358226/http://wenku.baidu.com

ASP.NET实现根据URL生成网页缩略图的方法_实用技巧

本文实例讲述了ASP.NET实现根据URL生成网页缩略图的方法.分享给大家供大家参考,具体如下: 工作中需要用到根据URL生成网页缩略图功能,提前做好准备. 在网上找了份源码,但是有错误:当前线程不在单线程单元中,因此无法实例化 ActiveX 控件"8856f961-340a-11d0-a9",解决后运行良好,记录在此备用! 起始页:Default.aspx <%@ Page Language="C#" AutoEventWireup="true&