比如我输入的短链接是
http://wx.smartoct.com/News/GuessNews?ImageTextID=b9e669ba-adaf-4fd2-930a-502e66633685&User_ID=622a17d7-355a-4d59-af18-416c3bfba132
调用百度api后返回的结果就是
{"tinyurl":"http:\/\/dwz.cn\/1FakzE","status":0,"longurl":"http://wx.smartoct.com/News/GuessNews?ImageTextID=b9e669ba-adaf-4fd2-930a-502e66633685","err_msg":""}
调用sina的之后结果也是
[{"url_short":"http://t.cn/RyLFTSW","url_long":"http://wx.smartoct.com/News/GuessNews?ImageTextID=b9e669ba-adaf-4fd2-930a-502e66633685","type":0}]
都移除了&后面的参数,不知道这是为什么
这里详细给出sinaapi的写法,供大神测试
public class GetShortUrl
{
public static string GetSina(string urlLong)
{
var result = "";
try
{
string url = "http://api.t.sina.com.cn/short_url/shorten.json?source=1681459862&url_long=" + urlLong;
string jsonstring = NetworkHelper.SendRequest(url);
if (jsonstring.Contains("url_short"))
{
result =
JsonConvert.DeserializeObject<System.Collections.Generic.List<SinaShortUrl>>(
jsonstring.Replace("\r\n", ""))[0].url_short;
}
}
catch (Exception)
{
}
return result;
}
}
public static class NetworkHelper
{
/// <summary>
/// 向服务器发送请求并返回请求结果
/// </summary>
/// <param name="url">请求url</param>
/// <returns>返回Response结果</returns>
public static string SendRequest(string url)
{
string data = string.Empty;
WebRequest wreq = null;
WebResponse wrep = null;
Stream stream = null;
StreamReader reader = null;
try
{
wreq = WebRequest.Create(url);
wrep = wreq.GetResponse();
stream = wrep.GetResponseStream();
reader = new StreamReader(stream, System.Text.Encoding.UTF8);
data = reader.ReadToEnd();
}
catch (Exception)
{
//throw;
}
finally
{
if (reader != null) reader.Dispose();
if (stream != null) stream.Dispose();
if (wrep != null) wrep.Dispose();
if (wreq != null) wreq.Abort();
}
return data;
}
}
看了下文档 http://open.weibo.com/wiki/Short_url/shorten
尼玛才发现,这个&参数被系统占用了
但是难道我的源地址就不能使用&来传递两个参数了,别告诉我合并成一个参数,尼玛系统内部改的工作量不是我等能想象的,这个坑难道就没有前人想过怎么预防的吗????????
因为参数也是url的一部分.如果不把参数也包括到里面去,短连接就没什么用了.因为参数的长度是不确定的.有可能转换后还是很长
我的意思是打开短链接之后,浏览器不是会解析成长链接吗?但是解析的这个长链接与我最开始输入的对比,少了&后面的参数
麻烦仔细看,也可能我描述的不够细
@给我一个理由: 哦.这样啊,已经就是输入短连接的时候跳转到的目标页面光之后地址.没有Querystring吗?
@吴瑞祥: 对啊
你点击这个链接 http://t.cn/RyLFTSW 得到结果是
http://wx.smartoct.com/News/GuessNews?ImageTextID=b9e669ba-adaf-4fd2-930a-502e66633685
得到的url和之前输入的(http://wx.smartoct.com/News/GuessNews?ImageTextID=b9e669ba-adaf-4fd2-930a-502e66633685&User_ID=622a17d7-355a-4d59-af18-416c3bfba132)
对比就是少了&后面的参数
@给我一个理由: http://www.surl.sinaapp.com/
不会啊,我用这个工具生成的https://www.baidu.com/?a=1&b=2->http://t.cn/zOfrcho进去之后还是有2个参数a-b啊
这个你需要和新浪那边联系解决了。那边肯定得解决这个问题,不然怎么搞、?