首页 > 解决方案 > 可以在控制台应用程序中访问 API,但不能访问 ASP.Net MVC 应用程序

问题描述

我编写了一些 C# 代码来访问 Google 距离矩阵 API。最初,我将代码放入 Visual Studio 2019 中的控制台应用程序中。我的代码如下。

string url = "https://maps.googleapis.com/maps/api/distancematrix/xml?origins=newyork&destinations=boston&key=MyKey";
        Uri myUri = new Uri(url, UriKind.Absolute);

        //HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri);
        WebResponse response = request.GetResponse();
        Stream dataStream = response.GetResponseStream();
        StreamReader sreader = new StreamReader(dataStream);
        string responsereader = sreader.ReadToEnd();
        response.Close();

        DataSet ds = new DataSet();
        ds.ReadXml(new XmlTextReader(new StringReader(responsereader)));
        if (ds.Tables.Count > 0)
        {
            if (ds.Tables["element"].Rows[0]["status"].ToString() == "OK")
            {
                Console.WriteLine("Duration: " + ds.Tables["duration"].Rows[0]["text"].ToString());
                Console.WriteLine("Distance: " + ds.Tables["distance"].Rows[0]["text"].ToString());
            }
        }

此代码与 API 一起按预期工作。然后,我将代码复制到一个 ASP.Net MVC 应用程序中。但是,当我运行 MVC 应用程序时,我在线收到错误消息:

WebResponse response = request.GetResponse();

在此处输入图像描述

有人可以帮忙解决吗?

谢谢你。

标签: c#apisocketexception

解决方案


推荐阅读