【问题标题】:The spaces inside the URLURL 中的空格
【发布时间】:2012-04-19 11:28:53
【问题描述】:

我使用 ASP.Net MVC 3 创建了 yahoo 天气 API 应用程序,当我尝试将邮政编码插入文本字段以查找正确的 xml 时,我想为标准的英国邮政编码留出空白。你能帮我做那件事吗?以下代码的model.PostCode 表示已在模型中声明为字符串的 PostCode 变量。此代码在控制器文件中。

private Boolean LookupWeather(ref RssModels model)
{    
  string WoeidUrl = "http://where.yahooapis.com/v1/places.q('" +
                     model.PostCode +
                     "')?appid=EzZDnOXV34EzJpQ8mX8mc62cYk1Gu21DzUhsLr.4nQ2qz.xffZah.RNq8lObxA--";

  XDocument getWoeid = XDocument.Load(WoeidUrl);

  try
  {
    model.Woied = (int)(from place in getWoeid.Descendants("place")
                        select place.Element("woeid")).FirstOrDefault();
    return true;
  }
  catch
  {
    return false;
  }

如果可以的话,请帮我获取如下 URL。 http://where.yahooapis.com/v1/places.q('mk10%202hn')?appid=EzZDnOXV34EzJpQ8mX8mc62cYk1Gu21DzUhsLr.4nQ2qz.xffZah.RNq8lObxA--

提前谢谢你。

【问题讨论】:

    标签: c# .net asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    使用UrlEncode

    string WoeidUrl = "http://where.yahooapis.com/v1/places.q('" 
        + UrlEncode(postCode)
        + "')?appid=EzZDnOXV34EzJpQ8mX8mc62cYk1Gu21DzUhsLr.4nQ2qz.xffZah.RNq8lObxA--";
    

    【讨论】:

    • 我给了你一个例子,并发布了一个指向 MSDN 文档的链接?你到底有什么不明白的?
    【解决方案2】:

    浏览器所做的就是用 %20 替换空间,您可以通过使用 Replace 来复制它,尝试:

    string postCode = model.PostCode.Replace(" ", "%20");
    

    然后像这样在上面的代码中使用它:

    string WoeidUrl = "http://where.yahooapis.com/v1/places.q('" 
        + postCode
        + "')?appid=EzZDnOXV34EzJpQ8mX8mc62cYk1Gu21DzUhsLr.4nQ2qz.xffZah.RNq8lObxA--";
    

    【讨论】:

      猜你喜欢
      • 2017-10-18
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      • 2014-04-18
      相关资源
      最近更新 更多