示例数据网址
_http://abc.com/cache.ashx?feedURL=http://search.twitter.com/search.rss?q=from%3AAbbottNews&rpp=3&clientsource=TWITTERINC_WIDGET&include_entities=true&result_type=recent&1334673762143=cachebust
我试图获取查询参数FeedURL
的值,而不是我得到的值;
实际: http://search.twitter.com/search.rss?q=from%3AAbbottNews&rpp=3&clientsource=TWITTERINC_WIDGET&include_entities=true&result_type=recent&1334673762143=cachebust
我得到了什么: http://search.twitter.com/search.rss?q=from%3AAbbottNews
必需:我需要完整的网址。
注意:它从第二个参数开始截断
肮脏的解决方案:
我尝试了所有的建议,但我觉得没有更好的解决方案。没有别的去,我做了一个肮脏的解决方案来完全获得URL的正确部分。
/// <summary>
/// Get Feed URL from raw URL
/// </summary>
/// <param name="rawURL"></param>
/// <returns></returns>
public static string GetFeedURL(string rawURL)
{
int index = rawURL.IndexOf("=");
string _rawURL = rawURL;
if (index > 0)
_rawURL = _rawURL.Substring(index).Remove(0, 1);
return _rawURL;
}
答案 0 :(得分:2)
看起来这可能是因为第一个“&amp;”您的FeedUrl中的字符可能会被视为外部查询字符串的查询参数。您可能需要先对FeedUrl进行编码。这只是我最初的直觉。
答案 1 :(得分:1)
将URL变量添加到URL时,您需要对URL变量进行URLEncode ...
url = "http://url.com?id=" + HttpUtility.UrlEncode("...");
Response.Redirect(url);
..和URLDecode他们在请求后与他们合作...
HttpUtility.UrlDecode(Request.QueryString["id"]);
否则,QueryString请求不知道如何处理所有额外的?和&amp;'s。
答案 2 :(得分:0)
您提供的网址虽然有效,但不会按您的预期解析;它将按照目前的方式进行解析。除非编码&符号,否则不支持嵌套查询字符串。