【问题标题】:How to use string parameters in an URL?如何在 URL 中使用字符串参数?
【发布时间】:2015-03-21 03:01:49
【问题描述】:

我正在使用 Rest api,所以我发送一个带有 URL 的请求,我的问题是当用户命名一个名称包含空格或特殊字符的文件夹时,它什么也不发送。我使用了以下转换,但它不起作用:

string url = "http://localhost:8080/alfresco/service/set/folder/permission/?folderName="
             + folder
             + "&permi="
             + acces
             + "&username="
             + user
             + "&alf_ticket="
             + GetToken();

Uri url2 = new Uri(url);
Response.Write(url2);

【问题讨论】:

  • 尝试使用Server.UrlEncode(user)对值进行编码

标签: c# asp.net .net string url


【解决方案1】:

您必须对变量进行 URL 编码以确保它们安全。使用HttpUtility.UrlEncode

string urlSafeFolder = HttpUtility.UrlEncode(folder);

在你的 URL 中使用该变量,你会没事的。 (您必须为传入的每个参数执行此操作!)

【讨论】:

  • 可以了,谢谢,这个函数用+替换空格,但是我的请求不起作用,我的url是这样的 /set/folder/permission/?folderName={folderName }&permi={permi?}&username={username?}&alfTicket={ticket?}
  • 您的评论不清楚。究竟是什么问题?也许最好提出一个带有明确问题陈述和重现场景的新问题。
【解决方案2】:

当任何用户在 url 中键入空格或任何特殊字符时,我们需要使用 UrlEncode 方法对其进行编码 --

string urlSafeFolder = HttpUtility.UrlEncode(folder);

因此,如果 url 中存在空格,它将被转换为 %20 等等。 完整的参考检查http://www.w3schools.com/tags/ref_urlencode.asp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 2012-07-13
    • 2020-11-22
    • 2011-08-26
    • 2017-04-19
    • 2015-03-30
    • 2012-03-28
    相关资源
    最近更新 更多