2015-07-10 43 views
0

我有一個簡單的VB.net應用程序,它具有一個文本框,我將其傳遞到URL進行搜索。因此,我們假設我想發送: 搜索「* ball」將文本框中的引號傳遞到外部URL

因此,我的搜索將在*後查找所有與球有關的內容。問題是,它在我發送時剝去了引號。

System.Diagnostics.Process.Start("https://searchgames.local/search?game=" & TextBox1.Text) 

如何我可以看看行情在我的文本框,然後如果他們在那裏,適當地通過他們,我發送到URL。在我的代碼下面,確保他們實際上在文本框中輸入了一些東西。一如既往,總是感激不盡的幫助。

If TextBox1.Text = "" Then ' If user does not enter any text 
      MsgBox("Enter text to search on." & vbCrLf & Err.Description, MsgBoxStyle.Information, "Need search term to search on.") 
      TextBox1.Focus() 'Set the cursor back to the text box 
+0

你需要URL編碼的文本。 – ElGavilan

回答

1

如果你是一個Web應用程序,你可以使用HttpUtility.UrlEncode正確逃避引號字符。在Web應用程序之外,MSDN建議您使用WebUtility.UrlEncode。您也可以使用Uri.EscapeDataString,但似乎有some problems

所以,舉例來說,你可以這樣做:

Process.Start("https://searchgames.local/search?game=" & HttpUtility.UrlEncode(TextBox1.Text)) 

或者這樣:

Process.Start("https://searchgames.local/search?game=" & WebUtility.UrlEncode(TextBox1.Text)) 

或者這樣:

Process.Start("https://searchgames.local/search?game=" & Uri.EscapeDataString(TextBox1.Text)) 
+0

完美!謝謝史蒂文!我感謝你們所有的投入者!意義重大。 – FNDevCJ

0

試試這個:

Dim url  as string = "https://searchgames.local/search?game=" & TextBox1.Text 
Dim encodedurl as string = HttpContext.Current.Server.UrlEncode(url) 
System.Diagnostics.Process.Start(encodedurl) 
+0

您應該只編碼查詢字符串,而不是整個URL。 – ElGavilan

相關問題