无法从我的Windows 8.1应用程序发送HTTP请求

时间:2016-08-19 15:43:02

标签: c# xamarin.forms windows-8.1

我在VS2015中有一个Xamarin.Forms应用程序项目,它在我的网络中使用REST服务。 这个项目的Android和iOS版本用于连接和获取来自localhost和我网络中已发布服务的数据,但是Windows 8应用程序仅在localhost中工作,当我尝试从我的网络中的服务获取数据时,我只能在输出控制台:

Exception thrown: 'System.Net.Http.HttpRequestException' in mscorlib.dll
                ERROR An error occurred while sending the request.

是否存在我遗漏的权限或安全约束?

我忘了说网络服务是在端口5000这样: http://localhost:5000/api/clientshttp://192.168.10.23:5000/api/clients 不确定是否相关或是否有任何策略限制在Win8应用程序中侦听哪些端口。

编辑2:

I think I should include the method where the exception is thrown:

    public async Task<List<Client>> LoadClientsAsync(string query)
            {
                var Items = new List<Client>();

                // RestUrl = http://192.168.10.100:5000/api/clients{0}

                var sb = new System.Text.StringBuilder();
                sb.Append("?q=");
                sb.Append(System.Net.WebUtility.UrlEncode(query));

                var uri = new Uri(string.Format(Constants.RestUrl, sb.ToString() ));

                try
                {

                    var response = await httpclient.GetAsync(uri); 
//Here is where exception is thrown
                    if (response.IsSuccessStatusCode)
                    {
                        var content = await response.Content.ReadAsStringAsync();
                        Items = JsonConvert.DeserializeObject<List<Client>>(content);
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(@"              ERROR {0}", ex.Message);
                }

                return Items;
            }

1 个答案:

答案 0 :(得分:0)

由于尝试向本地网络中的服务发送请求,因此在Package.appxmanifest中启用“专用网络(客户端和服务器)”功能可使其正常工作。