URL请求的返回值

时间:2014-12-23 20:35:04

标签: vb.net error-handling response server minecraft

我正在编写一个基于Minecraft的程序(我知道它在Java中更容易,这就是重点),我的一个功能包括输入用户名,它将返回该用户是否为高级会员。这可以通过以下方式在任何Web浏览器中手动完成:

https://minecraft.net/haspaid.jsp?user=USERNAME

当USERNAME替换为实际用户名时,例如:

https://minecraft.net/haspaid.jsp?user=xTeCnOxShAdOwZz

然后网页将显示“真实”和“真实”。或者' false',取决于该用户是否为高级版。在我的情况下,它返回' true',因为我是高级会员。我希望能够在Visual Basic中将其作为布尔值或字符串返回,然后我可以将其链接到标签。

我真的不知道从哪里开始使用代码,所以欢迎所有建议!谢谢! :)

1 个答案:

答案 0 :(得分:0)

这很简单。首先,您需要一种方法将网页读入字符串,这是一个非常基本的方法:

Private Function GetWebPageText(ByVal url As String) As String
    Dim Request As WebRequest = WebRequest.Create(url)
    Request.Credentials = CredentialCache.DefaultCredentials
    Return New StreamReader(Request.GetResponse().GetResponseStream()).ReadToEnd()
End Function

然后您需要做的就是使用您想要的用户名调用页面,并将返回值解析为布尔值。您可以使用Boolean.Parse(str)轻松完成此操作,将它们放在一起:

Private Function PlayerHasPremium(ByVal PlayerName As String) As Boolean
    Return Boolean.Parse(GetWebPageText("https://minecraft.net/haspaid.jsp?user=" + PlayerName))
End Function

然后,您可以使用用户名调用该方法,以便在代码中将值作为布尔值获取:

Sub Main()
    Dim TechnoShadowHasPremium As Boolean = PlayerHasPremium("xTeCnOxShAdOwZz")
    Dim MrLoreHasPremium As Boolean = PlayerHasPremium("MrLore")

    System.Console.WriteLine(TechnoShadowHasPremium) ' True
    System.Console.WriteLine(MrLoreHasPremium)       ' False
End Sub