在UWP(W10)中使用HttpClient进行POST请求

3

我正在使用通用Windows平台制作应用程序,并想问如何使用httpclient将数据(例如id=1)发布到服务器。虽然互联网上有一些教程,但很多是针对Windows 8.1的,不适用于Windows 10。

1个回答

4
如果您想在UWP中处理HTTP请求,您需要一个Web服务来支持它。如果您在解决方案中创建一个Web API项目,则可以使用控制器内的操作来处理POST请求。
有关Web API的更多阅读:点击这里 首先,您需要从NuGet安装Web API .net客户端以处理来自Web API的HTTP请求。
然后,在您的UWP项目中,您可以创建一个数据传输类,并使用以下方法:
const string ServerUrl = ""; //specify your server url

 public void ClientHeaderInfo(HttpClient client)
 {
        client.BaseAddress = new Uri(ServerUrl);
        client.DefaultRequestHeaders.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
 }

public virtual async Task Post(int id,string url)
    {
        HttpClientHandler handler = new HttpClientHandler { UseDefaultCredentials = true };
        using (var client = new HttpClient(handler))
        {
            ClientHeaderInfo(client);
            try
            {
                await client.PostAsJsonAsync(url, id);

            }
            catch (Exception ex)
            {
                await new MessageDialog(ex.Message).ShowAsync();
            }
        }

    }

现在,您可以随时调用 Post 方法,将 URL 路由到 Web API 中所需的控制器,并传递需要进行 POST 操作的 ID。请注意保留 HTML 标签。

你需要从NuGet添加一个Web API .NET客户端来支持以下内容。 - Kasper Due
安装包:包恢复失败。正在回滚对 'SDFA' 的包更改。 在第1行字符1处:
  • Install-Package Microsoft.AspNet.WebApi
  • + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
有关可能修复的任何想法吗?
- Onelio
尝试使用包管理器控制台安装此程序包:Install-Package Microsoft.AspNet.WebApi.Client。 - Kasper Due
是的,这是来自控制台的日志。 - Onelio
尝试删除packages文件夹内的所有文件夹,然后在Nuget Package Manager中更新所有包。 - Kasper Due
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接