`
阅读更多

 

短网址的好处众多,便于记忆,占用字符少等,现在市面上出现了众多的将长网址转变为短网址的方法,但是由于他们都是小的公司在幕后运营,所以很不靠谱,面对随时关闭服务的可能,这样也导致我们将转换好了的短网址也会失效失链!那么怎样才能使转换好了的短网址永久有效呢?

 

开发者用于生成二维码的原链接(商品、支付二维码等)太长导致扫码速度和成功率下降,将原长链接通过此接口转成短链接再生成二维码将大大提升扫码速度和成功率。微信公众号平台提供的长链接转短链接接口是:

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN

参数说明

参数 是否必须 说明
access_token 调用接口凭证
action 此处填long2short,代表长链接转短链接
long_url 需要转换的长链接,支持http://、https://、weixin://wxpay 格式的url

调用举例

curl -d "{\"action\":\"long2short\",\"long_url\":\"http://wap.koudaitong.com/v2/showcase/goods?alias=128wi9shh&spm=h56083&redirect_count=1\"}" "https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN"

返回说明,正常情况下,微信会返回下述JSON数据包给公众号:

{"errcode":0,"errmsg":"ok","short_url":"http:\/\/w.url.cn\/s\/AvCo6Ih"}

 

/// <summary>
/// 长链接转短链接
/// </summary>
/// <param name="longUrl">长链接</param>
/// <returns></returns>
[HttpPost]
[ValidateInput(false)]
[LoginAuthorize]
public ActionResult GetShortUrl(string longUrl)
{
    WeixinOfficialAccountEntity currentWeixinOfficialAccountEntity = RDIFrameworkService.Instance.WeixinBasicService.GetCurrentOfficialAccountEntity(ManageProvider.Provider.Current());
    string token = currentWeixinOfficialAccountEntity.AccessToken;


    //微信请求地址
    string url = "https://api.weixin.qq.com/cgi-bin/shorturl?access_token=" + token;

    //请求的json参数
    string data = "{\"action\":\"long2short\",\"long_url\":\"" + longUrl + "\"}";

    string ret = string.Empty;

    try
    {
        byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(data); //转化
        HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(url));
        webReq.Method = "POST";
        webReq.ContentType = "application/json";

        webReq.ContentLength = byteArray.Length;
        Stream newStream = webReq.GetRequestStream();
        newStream.Write(byteArray, 0, byteArray.Length);//写入参数
        newStream.Close();
        HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
        var ce = response.ContentEncoding;
        StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8"));
        ret = sr.ReadToEnd();

        sr.Close();
        response.Close();
        newStream.Close();
    }
    catch (Exception ex)
    {

    }

    //正常情况下,微信会返回下述JSON数据包给公众号:
    //{"errcode":0,"errmsg":"ok","short_url":"http:\/\/w.url.cn\/s\/AvCo6Ih"}

    string errcode = "";//错误码。
    string errmsg = "";//错误信息。
    string short_url = "";//短链接。

    //解析响应信息
    if (!string.IsNullOrWhiteSpace(ret))
    {
        JObject jo = (JObject)JsonConvert.DeserializeObject(ret);
        errcode = jo["errcode"].ToString();//错误码。
        errmsg = jo["errmsg"].ToString();//错误信息。
        short_url = jo["short_url"].ToString();//短链接。
    }



    return Content(new JsonMessage { Success = true, Data = short_url, Type = ResultType.Success, Message = errmsg }.ToString());
}

##3、使用效果参考##
长链接转短链接界面


生成的短链接效果

上面的界面我们把链接地址http://blog.rdiframework.net/article/190通过我们提供的长链接转短链接界面功能转成了短链接https://w.url.cn/s/ALO1xZC

 

微信公众平台技术文档-官方

Senparc.Weixin SDK + 官网示例源代码

RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录

RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍

RDIFramework.NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用

RDIFramework.NET代码生成器全新V3.5版本发布-重大升级


一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。

RDIFramework.NET官方网站:http://www.rdiframework.net/

RDIFramework.NET官方博客:http://blog.rdiframework.net/

同时需要说明的,以后的所有技术文章以官方网站为准,欢迎大家收藏!

RDIFramework.NET框架由专业团队长期打造、一直在更新、一直在升级,请放心使用!

欢迎关注RDIFramework.net框架官方公众微信(微信号:guosisoft),及时了解最新动态。

扫描二维码立即关注

微信号:guosisoft

0
0
分享到:
评论

相关推荐

    delphi开发微信API程序(长链接转短链接)

    delphi开发微信API程序(长链接转短链接),自己写的,用微信提供的API,长链接转短链接。使用方便

    实用的微信API长链接转短链接程序,delphi开发

    实用的微信API长链接转短链接程序,delphi开发.

    Java微信长链接转短链接

    使用微信接口制作的转短链接工具,需要有自己的微信测试号或者公众号生成的accesstoken,配置jdk环境变量才能使用(由于使用了exe4j打包,提示配置EXE_JAVA_HOME是和jdk环境变量一样的配置方法)

    长链接转短链接

    3. 私人分享:长链接容易出错,短链接更便于口述和复制。 4. 网页统计:通过短链接可以监控点击次数,了解流量来源。 五、短链接的挑战与优化 随着互联网的发展,短链接的需求越来越大,也带来了一些挑战。如短链接...

    URL 长连接变短链接的方法

    在Android开发中,有时我们需要将较长的URL转换为较短的形式,这通常被称为URL短链接服务。长链接可能由于各种原因需要变短,比如为了在社交媒体上更方便地分享,或者为了美观和易于记忆。本篇文章将深入探讨在...

    微信公众平台开发视频

    24. 长链接转短链接 11:05 25. 上传多媒体文件 23:41 26. 下载多媒体文件 16:24 27. 语音识别 8:45 28. 语义理解接口 29:26 29. 案例:天气预报(基于语音识别和语义理解) 24:24 30. 多客服的使用 31:10 31. 获取...

    浅谈Java代码的 微信长链转短链接口使用 post 请求封装Json(实例)

    在探讨如何使用Java代码实现微信长链转短链接口的过程中,首先要了解的是长链和短链的概念及其用途。长链指的是完整的、较长的网址,它可能包含多个查询参数和较长的路径信息。而短链是将长链通过特定算法转换为更短...

    长连接转短链接的神奇! 软件特别好用!

    一、长链接转短链接的原理 1. 重定向机制:长链接转换为短链接的核心原理是URL重定向。通过服务器端的设置,短链接实际指向一个特定的长链接。当用户访问短链接时,服务器会自动将其重定向到对应的长链接,完成页面...

    长链接异步联网转换为短链接

    这个是一个Android Demo, 利用百度长连接转为短链接的接口,异步联网调用。把我们平时用到的那些长连接转为短链接,这样可以省去一些资源,发短信,转为二维码都可以省下很大空间。此Demo 是在Edittext里面填好你的...

    微信公众平台PHP开发包wechat-php-sdk.zip

    长链接转短链接接口 (服务号、认证权限) 分组操作(查询、创建、修改、移动用户到分组) (认证权限) 网页授权(基本授权,用户信息授权) (服务号、认证权限) 用户信息(查询用户基本信息、...

    C#实现类似新浪微博长URL转短地址的方法

    本文实例讲述了C#实现类似新浪微博长URL转短地址的方法。分享给大家供大家参考。具体如下: 一、前台判断用户输入URL的JS代码如下。 function CheckInput() { var $txtLength = $("#inp_text").val().length; if ...

    2023年NDC-4长链烷烃脱氢催化剂行业市场突围建议及需求分析报告.docx

    展望未来,NDC-4长链烷烃脱氢催化剂行业将面临一系列机会和挑战。企业需要敏锐捕捉市场变化,及时调整经营策略,应对新兴技术的挑战,以及环保法规的日益严格。快速转变经营理念,从传统制造业模式向创新驱动、绿色...

    C#连接ModbusTCP连接示例

    总的来说,"C#连接ModbusTCP连接示例"涵盖了网络通信、设备控制和用户界面设计等多个方面,对于理解和实践工业自动化系统的开发具有重要意义。无论是WinForm还是WPF,掌握这些技能都将使你在面对类似项目时更加...

    NDC-4长链烷烃脱氢催化剂行业(2021-2026)企业市场突围战略分析与建议.docx

    NDC-4长链烷烃脱氢催化剂是石油化学领域中的关键材料,主要应用于石油炼制和石油化工过程,用于将长链烷烃转化为更有价值的烯烃产品,如乙烯和丙烯,这些烯烃是合成塑料、橡胶和其他化工产品的基础原料。在2021年至...

    启科网络短网址程序-长链接缩短程序源码分享

    启科网络短网址程序,自带点击统计功能-可自定义短网址程序,对于网络推广人员很有用,自建短网址,数据掌握在自己手里,可随时查看访问统计,可随时修改失效长链接,保证推广链接长期有效,防止用第三方短网址暗中...

    N-长链烷基脒基碳酸氢盐表面活性的研究

    以N-长链烷基脒为原料,在CO2氛围下制备得到N-长链烷基脒基碳酸氢盐。系统研究其表面活性发现:N-长链烷基脒基碳酸氢盐具有很好的表面活性,γcmc在20.5~32.3 mN/m之间;随着疏水链长的增加,N-长链烷基甲脒碳酸氢盐和N-...

    Java实现短链转换项目

    在IT行业中,短链接服务是一种常见的功能,它能够将冗长的URL转化为简短的、易于分享和记忆的链接。本项目是基于Java技术栈,利用SpringBoot框架、Redis缓存系统、MySQL数据库以及布隆过滤器来实现短链转换。下面...

    一个基于SpringBoot 开发的在线短链生成系统.zip

    1、将长链接转换成短链接,访问短链接时, 302重定向至原始长链接 2、支持设置短链有效期 3、支持记录访问次数 一个基于SpringBoot 开发的在线短链生成系统源码 实现功能 1、将长链接转换成...

    音视频-编解码-RUNXOR长链非编码RNA在急性髓系白血病中的作用及机制研究.pdf

    RUNXOR长链非编码RNA在急性髓系白血病(Acute Myeloid Leukemia, AML)中的作用及机制研究,是一项基于高通量测序技术的生物学探索。AML是一种常见的血液系统恶性肿瘤,尽管现代医学在干细胞移植和新药研发上取得了...

    WEIXIN-POPULAR-master.zip

    ShorturlAPI 长链接转短链接 TicketAPI JSAPI ticket ComponentAPI 第三方平台开发 工具类 PayUtil 支付工具类,生成JS支付,原生支付 SignatureUtil 签权生成、验证 XMLConverUtil XML 对象转换(JAXB) Js...

Global site tag (gtag.js) - Google Analytics