我的HttpWebRequest " post;自从我升级到Microsoft.NETCore.Univers

本文关键字:Microsoft Univers NETCore HttpWebRequest quot post 我的 | 更新日期: 2023-09-27 18:17:37

我注意到Microsoft.NETCore.UniversalWindowsPlatform的v5.2和5.1之间有一些东西

我有一个应用程序在v5.1和做一个"POST"操作与HttpWebRequest,参数在正文编码UTF8。(模拟登入网站)如果升级到v5.2,我的POST停止工作!我恢复到v5.1,它又工作了!你有什么主意吗?

mycode

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlrest.AbsoluteUri); request.CookieContainer = new CookieContainer();
ASCIIEncoding encoding = new ASCIIEncoding();
//Encoding.UTF8.GetBytes(postString);
byte[] postData = Encoding.UTF8.GetBytes(allparaminbody); //allparamin_body contain : user=myuser&password=mypassword
request.ContentType = "POST";
request.Headers["User-Agent"] = "Apache-HttpClient/4.1.1 (java 1.5)";
Stream newStream = await request.GetRequestStreamAsync();
newStream.Write(postData, 0, postData.Length);
newStream.Dispose();
response = (HttpWebResponse)await request.GetResponseAsync();

谢谢

我的HttpWebRequest " post;自从我升级到Microsoft.NETCore.Univers

不建议在UWP应用中使用HttpWebRequest。揭秘通用Windows平台中的HttpClient api:

作为通用Windows平台(UWP)应用程序开发人员,如果你试图通过HTTP与web服务或任何服务器端点进行通信,你有多种API选择。在托管的UWP应用程序中实现HTTP客户端角色最常用和推荐的两个api是System.Net.Http。HttpClient windows . web .HttpClient这些api应该优先于较旧的,不受欢迎的api,如WebClient和HttpWebRequest(尽管HttpWebRequest的一小部分在UWP中可用以向后兼容)。

你也可以参考我之前的回答。根据您的要求,可以选择System.Net.Http.HttpClientWindows.Web.Http.HttpClient。这里是GitHub上使用Windows.Web.Http命名空间的官方HttpClient示例。

此外,HttpWebRequest.ContentType应该是像x-www-form-urlencodedtext/html一样的MIME类型。POST不是一个有效值。它应该是HttpWebRequest.Method Property的值

我已经联系了微软,在v5.2中有一个BUG,他们会尽快改正的。

=> https://github.com/dotnet/corefx/issues/9003

cdt