Mysteriet er naesten opklaret.
HttpUtility.ParseQuery parser query strings ikke URL's.
Den virker tilfaeldigvis for URL's hvis path delen ikke indeholder special tegn.
Eksempel:
Imports System
Imports System.Collections.Specialized
Imports System.Web
Namespace E
Public Class Program
Public Shared Sub Test1(ByVal s As String)
Console.WriteLine(s + " --> " + HttpUtility.ParseQueryString(s)("q"))
End Sub
Public Shared Sub Test2(ByVal s As String)
Console.WriteLine(s + " --> " + HttpUtility.ParseQueryString((New Uri(s)).Query)("q"))
End Sub
Public Shared Sub Main(ByVal args As String())
Test1("?hl=da&q=test&meta=")
Test1("?q=test&Form=MSNH&cp=65001")
Test1("
http://www.google.dk/search?hl=da&q=test&meta=")
Test1("
http://search.msn.dk/results.aspx?q=test&Form=MSNH&cp=65001")
Test2("
http://www.google.dk/search?hl=da&q=test&meta=")
Test2("
http://search.msn.dk/results.aspx?q=test&Form=MSNH&cp=65001")
Console.ReadKey()
End Sub
End Class
End Namespace
udskriver:
?hl=da&q=test&meta= --> test
?q=test&Form=MSNH&cp=65001 --> test
http://www.google.dk/search?hl=da&q=test&meta= --> test
http://search.msn.dk/results.aspx?q=test&Form=MSNH&cp=65001 -->
http://www.google.dk/search?hl=da&q=test&meta= --> test
http://search.msn.dk/results.aspx?q=test&Form=MSNH&cp=65001 --> test