将引文从文本框传递到外部URL

时间:2015-07-10 15:58:22

标签: vb.net textbox

我有一个简单的VB.net应用程序,它有一个文本框,我将其传递给URL进行搜索。所以我想说我想发送这个: 搜索“* ball”

所以,我的搜索将在*之后用球查找所有内容。问题是,它在我发送它时会删除引号。

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

2 个答案:

答案 0 :(得分:1)

如果您使用的是网络应用,则可以使用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))

答案 1 :(得分: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)