我将WP7的lib重写为PCL。我有一个使用 HttpWebRequest' AllowAutoRedirect = false; 属性的函数。这对于正确登录非常重要。尝试将此功能复制粘贴到PCL项目时,我很失望。
Error 1 'System.Net.HttpWebRequest' does not contain a definition for 'AllowAutoRedirect' and no extension method 'AllowAutoRedirect' accepting a first argument of type 'System.Net.HttpWebRequest' could be found (are you missing a using directive or an assembly reference?)
有任何解决方法如何修复它?
答案 0 :(得分:0)
如果PCL项目面向Windows Phone 7,则无法在PCL项目中执行此操作。但是,您可以使用Visual Studio Express 2010 for Windows Phone创建Windows Phone 7库:
http://www.visualstudio.com/en-US/products/visual-studio-express-vs
您仍然可以将代码保存在PCL中,只需从Windows Phone 7库项目中注入HttpWebrequest即可。我知道它很乱,但它可能是实现它的唯一方法,而不必为不同的平台提供重复的库。
答案 1 :(得分:-1)
我在msdn论坛上找到了解决方案,但需要首先从nuget安装可移植的http cline库:
Install-Package Microsoft.Net.Http
这是我修改过的代码的和平。
HttpClientHandler hch = new HttpClientHandler();
hch.AllowAutoRedirect = false;
HttpClient hc = new HttpClient(hch);
StringContent queryString = new StringContent(string.Format("login={0}&password={1}", Uri.EscapeUriString(username), Uri.EscapeUriString(password));
queryString.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/x-www-form-urlencoded");
HttpResponseMessage msg = await hc.PostAsync("http://www....", queryString);
string responseBody = await msg.Content.ReadAsStringAsync();
...
希望它会对某人有所帮助