[通用 Windows 平台] 中的 System.Net.Http.HttpClient 无法正常工作
Posted
技术标签:
【中文标题】[通用 Windows 平台] 中的 System.Net.Http.HttpClient 无法正常工作【英文标题】:System.Net.Http.HttpClient in [Universal Windows Platform] not working properly 【发布时间】:2017-02-23 15:03:26 【问题描述】:我编写了从(在线)REST 服务获取数据的简单方法:
public async Task<Object> GetTask()
try
using (HttpClient client = new HttpClient())
client.BaseAddress = new Uri("http://111.111.111.111:8080/");
HttpResponseMessage result = await client.GetAsync("ABC/CDE/getsomeinfo");
if (result.IsSuccessStatusCode)
//Deserialize
catch (Exception ex)
Debug.WriteLine("Error" + ex);
return null;
每当我在 UWP 上运行它时,我都会遇到异常:
找不到与此错误代码相关的文本。
无法与服务器建立连接
HResult 2147012867
我正在尝试将我的客户端与内部网络中的 restapi 连接起来。在表单中,相同的代码工作正常。
【问题讨论】:
您是否让您的应用能够访问本地网络? (msdn.microsoft.com/en-us/windows/uwp/packaging/…,privateNetworkClientServer
上限)。你能做一个原始的 TCP 套接字连接到目标 IP 地址吗?
【参考方案1】:
试试这个
HttpResponseMessage response;
public async Task<string> webserviceResponse(string HttpMethod)
// check internet connection is available or not
if (NetworkInterface.GetIsNetworkAvailable() == true)
// CancellationTokenSource cts = new CancellationTokenSource(2000); // 2 seconds
HttpClient client = new HttpClient();
MultipartFormDataContent mfdc = new MultipartFormDataContent();
mfdc.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data");
string GenrateUrl = "your url";
if (HttpMethod == "POST")
response = await client.PostAsync(GenrateUrl, mfdc);
else if (HttpMethod == "PUT")
response = await client.PutAsync(GenrateUrl, mfdc);
else if (HttpMethod == "GET")
response = await client.GetAsync(GenrateUrl);
var respon = await response.Content.ReadAsStringAsync();
string convert_response = respon.ToString();
return convert_response;
else
return "0";
【讨论】:
我在 Package.appxmanifest 及其工作中设置了互联网功能,谢谢 设置成什么能力?以上是关于[通用 Windows 平台] 中的 System.Net.Http.HttpClient 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章