我在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/clients或http://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;
}
答案 0 :(得分:0)
由于尝试向本地网络中的服务发送请求,因此在Package.appxmanifest中启用“专用网络(客户端和服务器)”功能可使其正常工作。