【问题标题】:WebClient Passing Parameters With Space IssueWebClient 传递带有空格问题的参数
【发布时间】:2017-02-05 23:11:42
【问题描述】:

我想通过调用 api 来下载字符串,我必须在其中传递一些参数 其中包含空格:

String myUrl = AppConstants.BASE_URL + AppConstants.getFileteredList + Name + "," + LastName;

        WebClient wc = new WebClient();
        Uri uri = new Uri(myUrl,UriKind.Absolute);
        wc.DownloadStringAsync(uri);
        wc.DownloadStringCompleted += wc_DownloadStringCompleted;

看起来像这样

http://demo.com/Api/getFileteredList?data=abc%20xyz,abc%20xyz

但是在 wc_DownloadStringCompleted 中,e.result 会抛出类似的异常

远程服务器返回错误:NotFound。

我已经尝试过“Uri.EscapeUriString”,也尝试过使用“HttpWebRequest”来实现,但得到了同样的错误。

请帮我解决这个问题。

提前谢谢你。

【问题讨论】:

    标签: c# windows-phone-8 webclient


    【解决方案1】:

    我相信它只是一个格式错误的 URL。如果您查看 myUrl,您会注意到缺少 ?或可能的东西。

    您能否检查并在您的问题中提供更多详细信息。

    【讨论】:

    • 我已经发布了示例 URL,当我在浏览器中发布它时它是正确的。
    • 我明白了。您也必须对逗号 url 进行编码! , = %2C 浏览器会为您执行此操作,但 WebClient 显然不会。
    • 为此我试过这样:Uri.EscapeUriString(String myUrl = AppConstants.BASE_URL + AppConstants.getFileteredList + Name + "," + LastName);
    • 哪个返回了我想要的确切 Uri
    • 在这种情况下尝试 String myUrl = AppConstants.BASE_URL + AppConstants.getFileteredList + HttpUtility.UrlEncode(Name + "," + LastName);
    猜你喜欢
    • 2017-12-09
    • 1970-01-01
    • 2015-03-28
    • 2021-07-16
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 2011-12-29
    相关资源
    最近更新 更多