[通用 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 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
为什么即使Visual Studio中的简单Hello World通用Windows平台应用程序仍然出现“安全句柄已关闭”错误?
在通用 Windows 平台中将 Vector<T> 用于 SIMD
通用Windows平台(UWP)中的加密/解密存在数据错误(循环冗余校验)
类库(通用应用程序的便携式) System.Threading.Thread 限制
带有 system.drawing 和可能的替代方案的 WIndows 通用应用程序
arm开发板上的linux如何通过网口和windows的网口通信,linux中的socket和windows下的socket能通用吗?