很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。

2026-03-30 15:151阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计929个文字,预计阅读时间需要4分钟。

很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。

前言:短链接是一种将长链接转换成短链接的技术,可以使链接更加简洁、易于记忆,方便分享和传播。

简而言之,短链接就是将长链接转换成简短的字符串。通俗来说,就是将较长的URL网址,通过程序计算等方式,转换成更短的网址字符串。

前言

短链接是一种将长链接转换为短链接的技术,可以使得链接更加简洁易记,方便分享和传播。通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。

短链接的优点:

1、短

通过短链接功能用简短的网址替代原来冗长的网址,缩短了短信长度,降低成本。短信是按照内容的长短来收费的,短一点的链接既美观也省钱。

2、强大的数据功能

在短信中置入短链接,可以对短信的点击效果进行统计分析,进而能够判定短信发送的效果如何,为会员运营及精细化管理提供辅助依据。

3、提高购买率

短信中带上短链接,用户可以直接点击到达相应的页面,操作比较方便,更有利于顾客进行购买。

短链接服务的实现原理如下:

1、用户访问短链接,请求到达服务器;

2、服务器将短链接转换成为长链接,然后给浏览器返回重定向的状态码302;

3、浏览器拿到重定向的状态码,以及真正需要访问的地址,重定向到真正的长链接上。

很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。

一、ID加密成字符串

1.自定义序列化

在输出时,我们需要自动加密Id。

在这里,通过编写一个自定义JsonConverter来实现:

public class HashIdJsonConverter : JsonConverter<int> { Hashids hashids = new Hashids("愚公公众号");//加盐 public override int Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { var str = JsonSerializer.Deserialize<string>(ref reader, options); return hashids.Decode(str)[0]; } public override void Write(Utf8JsonWriter writer, int value, JsonSerializerOptions options) { JsonSerializer.Serialize(writer, hashids.Encode(value), options); } }

运行

public class UserDto { [JsonConverter(typeof(HashIdJsonConverter))] public int Id { get; set; } public string Name { get; set; } } [HttpGet] public IEnumerable<UserDto> Get() { return new[] { new UserDto { Id = 12345, Name = "用户12345" } }; }

2.自定义模型绑定

编写一个自定义IModelBinder来实现:

public class HashIdModelBinder : IModelBinder { Hashids hashids = new Hashids("公众号My IO");//加盐 public Task BindModelAsync(ModelBindingContext bindingContext) { var modelName = bindingContext.ModelName; var valueProviderResult = bindingContext.ValueProvider.GetValue(modelName); var str = valueProviderResult.FirstValue; bindingContext.Result = ModelBindingResult.Success(hashids.Decode(str)[0]); return Task.CompletedTask; } }

运行

[HttpGet("{id}")] public UserDto Get([ModelBinder(typeof(HashIdModelBinder))]int id) { return new UserDto { Id = id, Name = "用户"+id } ; }

二、短链接服务

Web API实现生成短链接接口:

[HttpPost("shorten")] public string ShortenUrl([FromBody]string url) { var id = db.Insert(url); var hashids = new Hashids("愚公公众号", minHashLength: 6); return hashids.Encode(id); }

短链接跳转接口:

[HttpGet("{shortUrl}")] public IActionResult GetUrl(string shortUrl) { var hashids = new Hashids("公众号My IO", minHashLength: 6); var id = hashids.Decode(shortUrl)[0]; var urlData = db.Get(id); return Redirect(urlData.Url); }

实现思维:将短链接解码成数据Id,然后到数据库查到对应长链接。最后返回跳转状态码

本文共计929个文字,预计阅读时间需要4分钟。

很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。

前言:短链接是一种将长链接转换成短链接的技术,可以使链接更加简洁、易于记忆,方便分享和传播。

简而言之,短链接就是将长链接转换成简短的字符串。通俗来说,就是将较长的URL网址,通过程序计算等方式,转换成更短的网址字符串。

前言

短链接是一种将长链接转换为短链接的技术,可以使得链接更加简洁易记,方便分享和传播。通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。

短链接的优点:

1、短

通过短链接功能用简短的网址替代原来冗长的网址,缩短了短信长度,降低成本。短信是按照内容的长短来收费的,短一点的链接既美观也省钱。

2、强大的数据功能

在短信中置入短链接,可以对短信的点击效果进行统计分析,进而能够判定短信发送的效果如何,为会员运营及精细化管理提供辅助依据。

3、提高购买率

短信中带上短链接,用户可以直接点击到达相应的页面,操作比较方便,更有利于顾客进行购买。

短链接服务的实现原理如下:

1、用户访问短链接,请求到达服务器;

2、服务器将短链接转换成为长链接,然后给浏览器返回重定向的状态码302;

3、浏览器拿到重定向的状态码,以及真正需要访问的地址,重定向到真正的长链接上。

很抱歉,您提供的信息不完整,我无法直接给出答案。请您提供更具体的问题或信息,这样我才能更好地帮助您。

一、ID加密成字符串

1.自定义序列化

在输出时,我们需要自动加密Id。

在这里,通过编写一个自定义JsonConverter来实现:

public class HashIdJsonConverter : JsonConverter<int> { Hashids hashids = new Hashids("愚公公众号");//加盐 public override int Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { var str = JsonSerializer.Deserialize<string>(ref reader, options); return hashids.Decode(str)[0]; } public override void Write(Utf8JsonWriter writer, int value, JsonSerializerOptions options) { JsonSerializer.Serialize(writer, hashids.Encode(value), options); } }

运行

public class UserDto { [JsonConverter(typeof(HashIdJsonConverter))] public int Id { get; set; } public string Name { get; set; } } [HttpGet] public IEnumerable<UserDto> Get() { return new[] { new UserDto { Id = 12345, Name = "用户12345" } }; }

2.自定义模型绑定

编写一个自定义IModelBinder来实现:

public class HashIdModelBinder : IModelBinder { Hashids hashids = new Hashids("公众号My IO");//加盐 public Task BindModelAsync(ModelBindingContext bindingContext) { var modelName = bindingContext.ModelName; var valueProviderResult = bindingContext.ValueProvider.GetValue(modelName); var str = valueProviderResult.FirstValue; bindingContext.Result = ModelBindingResult.Success(hashids.Decode(str)[0]); return Task.CompletedTask; } }

运行

[HttpGet("{id}")] public UserDto Get([ModelBinder(typeof(HashIdModelBinder))]int id) { return new UserDto { Id = id, Name = "用户"+id } ; }

二、短链接服务

Web API实现生成短链接接口:

[HttpPost("shorten")] public string ShortenUrl([FromBody]string url) { var id = db.Insert(url); var hashids = new Hashids("愚公公众号", minHashLength: 6); return hashids.Encode(id); }

短链接跳转接口:

[HttpGet("{shortUrl}")] public IActionResult GetUrl(string shortUrl) { var hashids = new Hashids("公众号My IO", minHashLength: 6); var id = hashids.Decode(shortUrl)[0]; var urlData = db.Get(id); return Redirect(urlData.Url); }

实现思维:将短链接解码成数据Id,然后到数据库查到对应长链接。最后返回跳转状态码