代码之家  ›  专栏  ›  技术社区  ›  RobV

ASP。网络无法识别查询字符串参数

  •  0
  • RobV  · 技术社区  · 17 年前

    我在使用ASP时遇到了问题。Net神秘地丢失了我的一个QueryString参数。我有如下网址(从浏览器地址栏粘贴):

    //Short example
    http://localhost/AllAboutThatWeb/SPARQL?partialResults=True&query=SELECT%20*%20WHERE%20{%3Fs%20%3Fp%20%3Fo}&timeout=1000
    
    //Long example
    http://localhost/AllAboutThatWeb/SPARQL?query=PREFIX%20rdf%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0D%0APREFIX%20rdfs%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0D%0APREFIX%20xsd%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0D%0APREFIX%20aat%3A%20%3Chttp%3A%2F%2Fwww.dotnetrdf.org%2FAllAboutThat%2F%3E%0D%0ASELECT%20*%20WHERE%20{%3Fs%20%3Fp%20%3Fo}&timeout=1000&partialResults=True
    

    但是partialResults参数总是丢失,如果我调试应用程序,我会发现Request。QueryString.AllKeys数组甚至不包含“partialResults”键,它包含“query”和“timeout”键。无论参数顺序如何,这种情况都会发生,将参数按不同顺序放置仍然会导致partialResults参数消失。

    这些URL是用于ASP的。Net Generic Handler在我的应用程序中,由应用程序中的另一个页面使用URL编码生成,在响应之前对每个参数的数据值进行编码。重定向用于将请求传递给处理程序。

    2 回复  |  直到 17 年前
        1
  •  2
  •   Blixt    17 年前

    尝试使用 partialResultz 或者一些这样的代替 partialResults 并检查 Request.QueryString.AllKeys 。如果在使用其他名称时出现,则表示应用程序的某个部分正在提取参数。

    此外,切勿将原始SQL放在用户可编辑的地方,即使只有少数人可以访问。我能看到的唯一例外是,如果你有一个应用程序,用户应该编写自己的SQL,或者你只是为自己编写一个测试应用程序。

        2
  •  -1
  •   Harun    16 年前

    “默认超时=4;”将其写入连接字符串(秒)