Web Services HttpClient GetDiscoveryDocumentAsync()方法挂起

kq0g1dla  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(198)

在ASP.NET项目中,我使用Web服务,通过API从Web服务获取数据,我使用以下代码连接Web服务,但它挂起:

public class HomeController : Controller
{
    public ActionResult Index()
    {

        var result = ICDa.GetCodeResult().GetAwaiter().GetResult();

        return View();
    }

    private  async Task<string> GetCodeResult()
    {
        var client = new HttpClient();
        var disco = await 
 client.GetDiscoveryDocumentAsync("https://icdaccessmanagement.who.int");
       if (disco.IsError)
       {
          return "error";
       }
       else
       {
           return "success";
       }
    }
}

但是当我在控制台应用程序中使用此代码时,它工作正常,没有问题

wz3gfoph

wz3gfoph1#

Mason的注解是正确的。我尝试在控制台应用程序和webapi应用程序中运行,所有工作正常。

  • 因此,我的测试结果证明HttpClient中的GetDiscoveryDocumentAsync()是正常的。*
  • 控制台应用程序中的测试代码 *
using System;
using System.Net.Http;
using System.Threading.Tasks;

using IdentityModel.Client;

using Newtonsoft.Json.Linq;

namespace ClientCredentialsConsoleApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Task.Run(async () =>
            {
                await aa();
            }).GetAwaiter().GetResult();
        }
        public static async Task<string> aa()
        {
            var client = new HttpClient();
            var disco = await client.GetDiscoveryDocumentAsync("https://icdaccessmanagement.who.int");
            if (disco.IsError)
            {
                return "error";
            }
            else {
                return "success";
            }
        }
    }
}
  • 与结果 *

  • Webapi应用程序中的测试代码 *
[HttpGet("Test_HttpClient")]
public async Task<string> Test_HttpClient()
{
    string res=await aa();
    return res;
}
private  async Task<string> aa()
{
    var client = new HttpClient();
    var disco = await client.GetDiscoveryDocumentAsync("https://icdaccessmanagement.who.int");
    if (disco.IsError)
    {
        return "error";
    }
    else
    {
        return "success";
    }
}
  • 与结果 *

相关问题