【问题标题】:Xamarin forms Get Request Not working for HTTP and HTTPSXamarin 表单获取请求不适用于 HTTP 和 HTTPS
【发布时间】:2020-06-27 13:41:47
【问题描述】:

我在 Xamarin 表单中创建了一个应用程序,其中包含 Visual Studio 2017 Professional 和 Visual Studio 2019 累积添加。

但我可以在 http 和 https 协议中点击 post 请求,但我无法在这两个协议中点击 Get 请求。

using (var client = new HttpClient())
        {
            try
           {
                
                var response1 = await client.GetStringAsync("https://reqres.in/api/users?page=2");
                
            }
            catch (WebException ex)
            {
                
            }
        }

Xamrin.form 版本 3.5 稳定版和 4.6 稳定版。

无法点击获取请求。

【问题讨论】:

  • 您是否遇到超时或其他异常?你得到什么 HTTP 响应代码?您是否使用设备上的浏览器测试过请求?
  • 是的,我已经用浏览器、邮递员、提琴手对它进行了测试,一切都可以在 API 上正常工作。我没有得到任何异常,只是我的调试器转到下一条语句。
  • 当它是异步操作时,调试器继续执行下一条语句是正常的。发生这种情况时,您的服务器是否记录了来自客户端的请求?您可能需要使用 Wireshark 之类的工具来实际检查来自客户端的请求
  • 我如何使用wireshark 来捕获来自手机的请求。我的问题是简单的获取请求在 xamrin 中不起作用,此代码在 Windows 控制台应用程序中运行良好。为什么它在 xamrin 中不起作用。

标签: xamarin xamarin.forms xamarin.android xamarin.ios


【解决方案1】:

我需要如下更改我的代码,之后一切正常。

 client = new HttpClient();
        client.DefaultRequestHeaders.Add("Accept", "application/json");
        client.DefaultRequestHeaders.Add("User-Agent", "HelloWorld.MyApp");
        HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, targetUri);
        HttpResponseMessage response = await client.SendAsync(requestMessage).ConfigureAwait(false);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 2019-05-21
    • 2017-12-23
    相关资源
    最近更新 更多