使用新浪API生成短连接
2016-08-18 17:04
134 查看
公司最近需要进行短信推广,需要发送大批量带有连接地址的短信给用户,并且需要统计短信的点击量。因为需要考虑短信成本问题,需要将长连接地址生成比较短的连接。因为公司本身没有短的一级域名,所以考虑到使用第三方的短连接生成器。经过对比选择了新浪短连接生成器。
新浪接口文档地址: http://open.weibo.com/wiki/Short_url/shorten
新浪提供了xml和json两种格式进行生成短连接,这里使用的是json。
下面是请求的代码
注意事项:
因为新浪接口在生成短连接的时候,会在生成同时调用一次连接的情况(在使用过程中也出现过在一段时间后这些短连接被同一系列的IP地址进行访问)。这样会影响到接口点击量统计。需要在连接响应地址上做一定的处理。对比了请求Request发现请求中的User-Agent和正常浏览器请求是不一致的。暂时我就是使用Request.Headers["User-Agent"]的值进行判断。
新浪接口文档地址: http://open.weibo.com/wiki/Short_url/shorten
新浪提供了xml和json两种格式进行生成短连接,这里使用的是json。
下面是请求的代码
public class ShortUrlHelper { public class sina_short_url { public string url_short { get; set; } public string url_long { get; set; } public int type { get; set; } } /// <summary> /// 新浪转换短链接 /// </summary> /// <param name="url"></param> /// <returns></returns> public static string Convert_SINA_Short_Url(string url) { if (string.IsNullOrWhiteSpace(url)) { return ""; } //api地址 var address = "http://api.t.sina.com.cn/short_url/shorten.json?source=2815391962"; address += "&url_long=" + HttpUtility.UrlEncode(url); //http请求 var json = RequestHelper.Request(address); //json转换 var urls = JsonHelper.Deserialize<List<sina_short_url>>(json); if (urls != null && urls.Count > 0) { return urls[0].url_short; } return ""; } /// <summary> /// 新浪转换短链接-批量 /// </summary> /// <param name="url"></param> /// <returns></returns> public static List<sina_short_url> Convert_SINA_Short_Url_ByUrlList(List<string> urlList) { if (urlList.Count > 20) { throw new Exception("最大支持20个url转换"); } var address = "http://api.t.sina.com.cn/short_url/shorten.json?source=2815391962"; foreach (var url in urlList) { address += "&url_long=" + HttpUtility.UrlEncode(url); } var json = RequestHelper.Request(address); var urls = JsonHelper.Deserialize<List<sina_short_url>>(json); return urls; } }
注意事项:
因为新浪接口在生成短连接的时候,会在生成同时调用一次连接的情况(在使用过程中也出现过在一段时间后这些短连接被同一系列的IP地址进行访问)。这样会影响到接口点击量统计。需要在连接响应地址上做一定的处理。对比了请求Request发现请求中的User-Agent和正常浏览器请求是不一致的。暂时我就是使用Request.Headers["User-Agent"]的值进行判断。
相关文章推荐
- 使用新浪API生成短连接
- 新浪短连接生成api
- 使用Jakarta POI EXCEL API自动生成ORACLE数据字典的源代码
- 静态连接库的生成和使用
- 使用MiniDumpWriteDump API 来生成程序的Dump
- 使用android ndk r8 编译nativc C,生成动态库。并连接使用
- 使用MiniDumpWriteDump API 来生成程序的Dump(转载)
- 如何使用 CoCreateGUID API 以生成一个 GUID 以
- 在flash builder中使用asdoc生成api
- 教你方便使用ASDoc《双击轻松生成API文档》
- 使用Eclipse通过连接数据库生成实体类和映射文件
- 使用MiniDumpWriteDump API 来生成程序的Dump
- 解决使用MySQL C-API开发应用时的连接超时问题
- 使用Visual Studio生成安装程序并设定连接字符串及其他自定义操作.
- 使用VS自带的数据连接对话框,功能强大又好用!!动态生成连接字符串
- 使用class-dump来生成iphone private api 头文件
- 使用 Java Management Extension API 连接 Rational Application Developer V7.0 和 WebSphere Application Server V6.1
- 使用Apache FileUpload 上传以及 JExcelApi 生成Excel文件
- 使用PowerDesigner连接数据库并生成ER图
- 使用Visio连接SqlServer生成ER图