微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 Mac 上的 Visual Studio 调用 URL GetAsync 从不返回

如何解决从 Mac 上的 Visual Studio 调用 URL GetAsync 从不返回

我在 Windows 上的 Visual Studio C# 上做过几次。

现在我正在使用我的 Mac - 在 Visual Studio C# 中创建一个 Xamarin 应用程序并且这个简单的代码不起作用:

using (HttpClient myClient = new())
            {
                myClient.DefaultRequestHeaders.Accept.Clear();
                myClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                HttpResponseMessage response = await myClient.GetAsync(url);
                string result = await response.Content.ReadAsstringAsync();
                return result;
}

网址是:“http://webcode.me”。

我尝试创建一个 URI,同样的问题。

发生的事情是,当代码行:

HttpResponseMessage response = await myClient.GetAsync(url);

调用,它永远不会返回。而且该应用永远不会启动。

当然,我使用的url只是一个测试url,但是调用这个方法后,我的输出窗口是这样的:

    2021-04-16 15:40:07.653142+0200 PHC.iOS[3243:87620] Starting Up
Resolved pending breakpoint at 'Main.cs:35,1' to void PHC.iOS.Application.<GetBridges>d__2.MoveNext () [0x000b2].
Resolved pending breakpoint at 'Communicator.cs:44,1' to void PHC.BridgeCommunication.Communicator.<DoGet>d__4.MoveNext () [0x00189].
2021-04-16 15:40:07.664131+0200 PHC.iOS[3243:87620] Now trying URL: http://webcode.me
Resolved pending breakpoint at 'Communicator.cs:58,1' to void PHC.BridgeCommunication.Communicator.<DoGet>d__4.MoveNext () [0x001b9].
Thread started:  #2
2021-04-16 15:40:08.249780+0200 PHC.iOS[3243:87661] SecTaskLoadEntitlements Failed error=22 cs_flags=200,pid=3243
2021-04-16 15:40:08.250077+0200 PHC.iOS[3243:87661] SecTaskcopyDebugDescription: PHC.iOS[3243]/0#-1 LF=0
2021-04-16 15:40:08.259552+0200 PHC.iOS[3243:87661] [] nw_protocol_get_quic_image_block_invoke dlopen libquic Failed
Thread started:  #3
Thread started:  #4
Thread started: <Thread Pool> #5
Thread started: <Thread Pool> #6

并且它会一直持续下去,并带有 Thread 启动和 Thread 停止信息。

“正在启动”和“正在尝试 URL:http://webcode.me”是调用函数的类的控制台输出。在控制台写完这些东西后,调用上图所示的方法

我可以在 Windows Visual Studio 上正常工作,完全没有问题。

我不是 Mac 专家,但我想知道我的 Mac 是否以某种方式阻止了呼叫。防火墙已关闭

有人可以帮我一下吗?

解决方法

好的 - 首先。该错误与 API 调用无关。 API 调用变为异步,应用程序继续运行并遇到该错误。

我删除了 API 调用并发现了这一点。

然后我从使用 HttpClient 改为使用 HttpWebRequest,突然我的请求通过并很好地返回。

我仍然不知道为什么我的 HttpClient 根本不起作用,但我将关闭此票,因为我不再需要答案。谢谢大家的评论。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。