博客开发手记1 – 不能发布URL长度超过280字符微博的解决方案(C#实现)

本文介绍了一种解决微博发布长URL的问题的方法,通过使用短链接生成服务的API,可以将过长的URL转化为短链接,从而实现在微博客户端及网页端成功发布含有长URL的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发微博PPC客户端时发现,不能发布URL长度超过280字符的微博(网页端也有此问题),例如发布一个淘宝商品图片:URL http://www.taobao.com/view_image.php?pic=Wx0GGlFDXA1VUwMFWx0SCwkNGRFcVxxQW1UcCxMFRBkDCFdVV1cRRhpTRDhHQghddWtdVEAxKgtSA0MHZ2sDBUBfRlJFBgYV&title=zeLDs8zYvNvP5LD8ILH2usBCSU5IQU%2FV%2Fca3IMLD0NDP5C%2B1x7v6z%2BQvzdDUy8%2FkL8CtuMvP5DI0tOc%3D&version=2&c=OTgzMDkyZWY2Njk3MjI4ZmI2ZGUzMjdlYTkyODEyOTI%3D&itemId=85a8fa3ca3d4933e7e6d57714c28105a&dbId=db1&fv=9

 

直接将此URL输入到信息框,将提示信息超出长度,如下图:

                   WeGo(微博PPC客户端)

 

                               新浪微博网页端

 

 

 

 

使用WeGoURL短地址编辑器即可实现发布此微博,具体操作如下:

1.进入短地址编辑界面

2.输入要缩短的URL,点击"确定"

3.生成短地址,发布微博

 

 

 

 

 

具体解决方案如下:

使用ShortText.com   TinyURL.com等短地址生成网站的API生成短地址,然后使用短地址发布微博。

本文以ShortText.com API为例,使用C#实现,具体实现如下:

 

    public class ShortTextURL

    {

        private const string APIURL = "http://shortText.com/api.aspx";

 

       

        public string GetShortenedText(string inputText)

        {

            string data = "shorttext=" + HttpUtility.UrlEncode(inputText);

            const int trimLength = 5;

            string shortenURL = ExecutePostCommand(APIURL, data);

            if (!string.IsNullOrEmpty(shortenURL))

            {

                string newText =

                    inputText.Substring(0, inputText.LastIndexOf(" ", 140 - (shortenURL.Length + trimLength))) + " " +

                    shortenURL;

                return newText;

            }

            return inputText;

        }

 

        private static string ExecutePostCommand(string url, string data)

        {

            var request = CreateHttpRequest(new Uri(url));

           

            request.ContentType = "application/x-www-form-urlencoded";

            request.Method = "POST";

            request.Timeout = 20000;

           

            byte[] bytes = Encoding.UTF8.GetBytes(data);

 

            request.ContentLength = bytes.Length;

            try

            {

                using (var requestStream = request.GetRequestStream())

                {

                    requestStream.Write(bytes, 0, bytes.Length);

                    requestStream.Flush();

                }

            }

            catch (Exception)

            {

 

            }

 

            try

            {

                using (var response = (HttpWebResponse)request.GetResponse())

                {

                    using (var reader = new StreamReader(response.GetResponseStream()))

                    {

                        return reader.ReadToEnd();

                    }

                }

            }

            catch (WebException ex)

            {

                System.Diagnostics.Debug.WriteLine(ex.Message);

            }

            return null;

        }           

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值