【问题标题】:How to get onyl part of the URL in c#如何在c#中仅获取部分URL
【发布时间】:2014-12-10 12:26:20
【问题描述】:

我正在使用 C# 创建一个需要引用 URL 的模块 所以我在这里为你准备了 2 个示例 URL。

http://www.website.com/ProductDetail/tabid/86/rvdsfpid/1gb-dual-port-iscsi-8660/rvdsfmfid/qlogic-174/Default.aspx

&&

http://www.website.com/ProductDetail/tabid/86/rvdsfpid/49950/default.aspx

现在我需要两个 URls 的产品 ID,在第一种情况下是 8660,在第二种情况下是 49950。我无法更改这些 URls 的生成方式。最简单的方法是

http://www.website.com/ProductDetail/tabid/86/default.aspx?rvdsfpid=49950 然后我可以做以下事情,生活会很轻松。

string Pid= Request.Querystring["rvdsfpid"];

但是,由于我无法控制 URL 的生成方式,我如何才能捕获 URL 并仅获取 productId。

【问题讨论】:

  • 给定一个像第一个例子一样的 URL,你如何确定哪一部分是产品 ID?
  • 搜索到的 URL 的相对位置在两个示例中是相同的:它位于“www.website.com/ProductDetail/tabid/86/rvdsfpid/”后面的块中,以下一个“/”所以将该部分作为字符串获取是没有问题的,但是在 1 个示例中,只有您在此块中查找的 ID,在第二个示例中,有您正在查找的 ID 和我们没有的数据关心,那你怎么知道你关心什么数据?

标签: c# asp.net url


【解决方案1】:

假设这是您正在传递的 URL 格式,并且您无能为力....您将需要获取完整的 url,然后将其拆分。这是基本的,您将不得不在其中添加一些额外的检查和东西;

string url = "http://www.website.com/ProductDetail/tabid/86/rvdsfpid/1gb-dual-port-iscsi-8660/rvdsfmfid/qlogic-174/Default.aspx"
//string url = "http://www.website.com/ProductDetail/tabid/86/rvdsfpid/49950/default.aspx";

url = url.Replace("http://", ""); //get rid of that, add code to check for https?
string[] x = url.Split('/');
string productCode = x[5]; //assuming the product code is always the 6th item in the array!

string code = "";
if (productCode.IndexOf("-") > -1)
{
    code = productCode.Substring(productCode.LastIndexOf("-")+1);
}
else
{
    code = productCode;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2013-10-30
    • 2011-10-22
    相关资源
    最近更新 更多