为什么URL查询字符串值导致“无法访问此页面”或“无法访问此站点”错误?

时间:2019-08-13 16:27:04

标签: html asp.net url

我使用的是旧版ASP.NET Web应用程序,该应用程序具有使用查询字符串值在页面之间传递信息的URL。我遇到了几个URL,其中包含我要理解的空格,数字和破折号。

以下是网址的示例:

http://myserver.com/SelectReport.aspx?Name=My Report&ReportFile=my_financial_report&ReportTitle=My Financial Planning Across A 1-Year Or 2-Year Outlook

URL的问题部分是ReportTitle查询字符串值。

当我单击Internet Explorer 11或Microsoft Edge中的链接时,出现Cant' reach this page. It took too long to connect to this website. Error Code: INET_E_CONNECTION_TIMEOUT错误。应该注意的是,如果我在Internet Explorer 11中打开 ON 兼容性视图设置,则该链接会正常工作。

当我单击Google Chrome浏览器中的链接时,我得到一个“无法访问此网站”。连接被重置。 ERR_CONNECTION_RESET”错误。

如果我删除2中的2-Year,则该链接有效。但是,如果我删除1中的1-Year并留下2-Year,该链接将无法工作。 我想知道为什么删除2中的2-Year可以使链接起作用,但是删除1中的1-Year却不能。无论是否用%20替换空格,都是如此。有人知道答案吗?

我知道我可以用加号(ReportTitle)来代替+查询字符串值中的空格,它将起作用。这可能是我要解决此问题的方法,但我希望能更好地理解该问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是我在原始帖子中继续发表评论的内容。我正在编写此答案以分享演示示例。这可能不是一个完整的答案。

当您有空格,或者空格被Color.argb() 替换或空格被 String st = "test1@gmail.com," + "test2@gmail.com," + "test@yahoo.com," + "test@hotmail.com," + "test@rediff.com," + "test@rediff.com," + "wer@gmailcom"; st.trim(); String[] total = st.split("\\,"); List<String> unique = new ArrayList<>(); List<String> duplicate = new ArrayList<>(); Arrays.stream(total) .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())) .forEach((k, v) -> { if (v > 1) { duplicate.add(k); } else { unique.add(k); } }); 替换时,绝对没有区别。另外,我之前提到过,您的网址包含有效字符,包括%20

请参阅下面的三个链接。我怀疑是您的应用程序正在处理URL编码,解码和出现问题。这不是普遍问题。

+