为什么我有这个 Rest API uri 错误

  • 本文关键字:Rest API uri 错误 c# .net uri
  • 更新时间 :
  • 英文 :


我的问题

我有我的通用Windows应用程序,我想使用rest api。我总是收到错误CS 4032:

httpResponseBody = await httpClient.GetStringAsync(requestUri);

就像你不能在它不异步时调用该方法一样。

整个代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using System.Net;
using Windows.Web.Http;
namespace UniversalCA
{
   public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
            Send();             
        }
        public string Send()
        { 
            HttpClient httpClient = new HttpClient();
            Uri requestUri = new Uri("http://restapic.azurewebsites.net/WebForm1.aspx?func=dd&hodn=WW");
            HttpResponseMessage httpResponse = new HttpResponseMessage();
            string httpResponseBody = "";
            try
            {
                httpResponseBody = await httpClient.GetStringAsync(requestUri);
            }
            catch (Exception ex)
            {
                httpResponseBody = "Error: " + ex.HResult.ToString("X") + " Message: " + ex.Message;
            }
            string tt = httpResponseBody.Split('>')[1].Split('<')[0];
            return httpResponseBody;
        }
    }
}

问题是你不能在 not async 函数中使用await关键字。您的Send函数在声明中没有async关键字。添加async关键字将解决问题

public async Task<string> Send()

只是为了补充@Ruben瓦尔达尼扬人的答案。

只是:添加using System.Threading.Tasks;

在 Send(( 上添加Wait()关键字;调用

    public MainPage()
    {
        this.InitializeComponent();
        Send().Wait();             
    }

最后是你的 Send(( 方法添加async Task<T>

  public async Task<string> Send()

请查看此答案以调用构造函数中的异步方法。在构造函数中调用异步方法?

不要使用 await Send(); 调用该方法,您将遇到编译器错误。

最新更新