首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当查询字符串包含未编码的数据时,如何读取?

当查询字符串包含未编码的数据时,如何读取?
EN

Stack Overflow用户
提问于 2012-02-16 21:51:27
回答 4查看 710关注 0票数 1

我有下面的asp.net页面,它接受一个"url“查询字符串键,它的值可以是一个未编码的url:

代码语言:javascript
运行
复制
http://localhost:4104/WebSiteForTest/TinyUrl.aspx?url=http://www.google.co.uk/#hl=en&q=life&oq=life&aq=f&aqi=g-s1g9&aql=&gs_sm=3&gs_upl=2803373l2803701l2l2803826l4l4l0l0l0l0l188l453l0.3l3l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=94681dc4659502d1&biw=1680&bih=883

现在从这个页面上,怎么可能读到".aspx?“之后的文本呢?

我检查了Request.Url.AbsoluteUri属性,它只显示

代码语言:javascript
运行
复制
"http://localhost:4104/WebSiteForTest/TinyUrl.aspx?url=http://www.google.co.uk/"

我还用下面的代码检查了Request.QueryString:

代码语言:javascript
运行
复制
 private void getQueryString()
    {
        var sb = new StringBuilder();

        var queryStringCount = Request.QueryString.Keys.Count;

        for (int keyIndex = 0; keyIndex < queryStringCount; keyIndex++)
        {
            sb.Append(Request.QueryString.Keys[keyIndex]).Append("=").Append(Request.QueryString[keyIndex]);
            if (keyIndex != (queryStringCount - 1))
            {
                sb.Append("&");
            }
        }
    }

但是,"#“后面的代码不会出现在任何查询字符串中。

怎么可能读到".aspx?“之后的文字呢?

如果你说这是不可能的,谷歌怎么会在他们的url中使用"#“,然后当你搜索东西的时候?!

http://www.google.co.uk/#hl=en&site=&q=life&oq=life&aq=f&aqi=g-s1g9&aql=&gs_sm=3&gs_upl=3317l3630l0l3755l4l4l0l0l0l0l125l391l3.1l4l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=94681dc4659502d1&biw=1680&bih=849

谢谢,

EN

回答 4

Stack Overflow用户

发布于 2012-02-16 22:05:06

在服务器端获取锚点后的值是不可能的,你可以用fiddler或类似的东西来检查,你应该在客户端处理这个问题。浏览器只是简单地剥离所有的锚点。

Retrieving Anchor Link In URL for ASP.Net

c# get complete URL with "#"

更新:

我不知道google到底是如何做到这一点的,但如果你在最初的请求之后使用fiddler,就会发现另一个没有#的请求,这是你问题中请求的fidller日志:

所以我的建议是,看看小提琴手谷歌是如何做到这一点的,或者问另一个问题

票数 4
EN

Stack Overflow用户

发布于 2012-02-16 21:55:11

使用Request.QueryString

代码语言:javascript
运行
复制
http://localhost:4104/WebSiteForTest/TinyUrl.aspx?url=http://www.google.co.uk/#hl=en&q=life&oq=life&aq=f&aqi=g-s1g9&aql=&gs_sm=3&gs_upl=2803373l2803701l2l2803826l4l4l0l0l0l0l188l453l0.3l3l0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=94681dc4659502d1&biw=1680&bih=883

<%=Request.QueryString("url")%>将获取?url参数

票数 0
EN

Stack Overflow用户

发布于 2012-02-16 21:58:17

我假设您正在使用C#来做这件事。您可以通过遍历请求对象轻松地获取参数及其值。或者,在本例中,由于您知道参数的名称,因此只需执行以下操作:

String url = Request.QueryString"url";

有关iterating through your request parameters can be found here的更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9312478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档