【问题标题】:Change a url parameter value [duplicate]更改 url 参数值 [重复]
【发布时间】:2013-05-11 02:42:36
【问题描述】:

我有一个包含 URL 的字符串,即.../details?fname=peter&lname=smith&...

有没有办法用另一个替换 URL 中的 lname 参数值?请记住,lname 的值并不总是相同的。

【问题讨论】:

标签: .net regex vb.net


【解决方案1】:

试试这个

使用返回 NameValueCollection 的 System.Web.HttpUtility 类的静态 ParseQueryString() 方法。

string url = "http://example.com/file?a=1&b=2&c=string%20param";
string querystring = url.Substring(url.IndexOf('?'));
System.Collections.Specialized.NameValueCollection parameters = 
   System.Web.HttpUtility.ParseQueryString(querystring);

【讨论】:

    【解决方案2】:

    您可以使用字符串替换。例如,如果您需要构建自定义 url,您可以执行以下操作:

    string myURL = ".../details?fname=peter&lname=#lname#";
    
    string myValue ="finalvalue";
    
    string FinalURL = myURL.Replace("#lname#,myValue);
    

    【讨论】:

      【解决方案3】:

      你可以这样做:

      Dim sAux() As String = sURL.Split(New Char() {"?"c, "&"c})
      Dim sParams() As String
      
      For Each elem As String In sAux
          sParams = elem.Split("="c)
          If sParams(0).Equales("lname", StringComparison.CurrentCultureIgnoreCase) Then
              sUrl = sUrl.Replace("lname=" & sParams(1), "lname=" & sNewValue)
          End If
      Next
      

      或者简单地说:

      Dim index As Integer = sUrl.IndexOf("lname=")
      Dim auxIndex As Integer = sUlr.IndexOf("&", index + 1)
      Dim sAux As String
      
      If index >= 0 Then
          If auxIndex < 0 Then
              sAux = sUrl.Substring(index)
          Else
              sAux = sUrl.SubString(index, sUrl.Length - auxIndex)
          End If
      
          sUrl = sUrl.Replace(sAux, "lname=" & sNewValue)
      End If
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-24
        • 2013-08-14
        • 1970-01-01
        • 2013-05-31
        相关资源
        最近更新 更多