短网址的好处众多,便于记忆,占用字符少等,如今市面上出现了众多的将长网址转变为短网址的方法,可是因为他们都是小的公司在幕后运营,因此很不靠谱,面对随时关闭服务的可能,这样也致使咱们将转换好了的短网址也会失效失链!那么怎样才能使转换好了的短网址永久有效呢?git
开发者用于生成二维码的原连接(商品、支付二维码等)太长致使扫码速度和成功率降低,将原长连接经过此接口转成短连接再生成二维码将大大提高扫码速度和成功率。微信公众号平台提供的长连接转短连接接口是:github
http请求方式: POST
https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN
复制代码
参数说明web
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
action | 是 | 此处填long2short,表明长连接转短连接 |
long_url | 是 | 须要转换的长连接,支持http://、https://、weixin://wxpay 格式的url |
调用举例json
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数据包给公众号:api
{"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());
}
复制代码
##三、使用效果参考## 微信
上面的界面咱们把连接地址blog.rdiframework.net/article/190经过咱们提供的长连接转短连接界面功能转成了短连接w.url.cn/s/ALO1xZC。app
微信公众平台技术文档-官方微信公众平台
Senparc.Weixin SDK + 官网示例源代码框架
RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录curl
RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工做流程组件介绍
RDIFramework.NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用
RDIFramework.NET代码生成器全新V3.5版本发布-重大升级
一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,你们能够经过下面的地址了解详情。
RDIFramework.NET官方网站:www.rdiframework.net/
RDIFramework.NET官方博客:blog.rdiframework.net/
同时须要说明的,之后的全部技术文章以官方网站为准,欢迎你们收藏!
RDIFramework.NET框架由专业团队长期打造、一直在更新、一直在升级,请放心使用!
欢迎关注RDIFramework.net框架官方公众微信(微信号:guosisoft),及时了解最新动态。
扫描二维码当即关注