0

有人知道我如何在 VB.Net 中为 Windows Phone 8 执行异步发布请求吗?

我尝试了很多,但没有任何效果......这个http://msdn.microsoft.com/de-de/library/system.net.httpwebrequest.begingetrequeststream.aspx也没有工作。

非常感谢。

4

1 回答 1

2

不久前,我不得不自己弄清楚这一点。让我看看我能做些什么来提供帮助。

发布网络请求实际上比链接显示的要简单。这就是我所做的。

首先,我创建一个 MultipartFormDataContent:

Dim form as New MultipartFormDataContent()

接下来,我添加每个要发送的字符串,如下所示:

form.Add(New StringContent("String to sent"), "name of the string you are sending")

接下来,创建一个 HttpClient:

Dim httpClient as HttpClient = new HttpClient()

接下来,我们将创建一个 HttpResponseMessage 并将您的信息发布到您选择的 url:

Dim response as HttpResponseMessage = Await httpClient.PostAsync("www.yoururl.com/wherever", form)

然后,我通常需要将响应作为字符串,所以我读取了对字符串的响应:

Dim responseString as String = Await response.Content.ReadAsStringAsync()

如果那是您想要的,这将为您提供所需的响应。

这是我使用的方法的示例:

Public Async Function GetItems() As Task
    Dim getUrl As String = "https://myapiurl.com/v3/get"
    Dim responseText As String = String.Empty
    Dim detailType As String = "complete"
    Try
        Dim httpClient As HttpClient = New HttpClient()
        Dim form As New MultipartFormDataContent()
        form.Add(New StringContent(roamingSettings.Values("ConsumerKey").ToString()), "consumer_key")
        form.Add(New StringContent(roamingSettings.Values("access_token").ToString()), "access_token")
        form.Add(New StringContent(detailType.ToString()), "detailType")
        Dim response As HttpResponseMessage = Await httpClient.PostAsync(getUrl, form)
        responseText = Await response.Content.ReadAsStringAsync()
    Catch ex As Exception

    End Try

End Function

如果您不使用 Http 客户端库,则需要像这样安装它们:使用 HttpClient 需要做的是在 Visual Studio 中导航,转到 Tools->Library Package Manager->Manage Nuget Packages for这个解决方案。在那里,搜索 HttpClient 的在线部分,并确保在结果上方的列表框中选择了“包含预发布”。(默认设置为“Stable Only”)然后安装ID为Microsoft.Net.Http的包

然后,您需要在使用它的文档的开头添加一个 Import 语句。

让我知道这是否是您想要的。

谢谢, SonofNun

于 2013-04-06T23:32:02.403 回答