HttpWebRequiest.AllowAutoRedirect 在 PCL 中找不到
HttpWebRequiest.AllowAutoRedirect not found in PCL
我是 Xamarin 的新手,所以我希望这不是一个愚蠢的问题:)
我正在开发一个 PCL,它将用作 SDK(NuGet 包)供客户用于他们的 Http API。
在 iOS 和 Android 上都有很多逻辑需要完成,所以我认为 PCL 是可行的方法。
API 我包装的是 HttpWebRequest,基本上我公开了完全相同的 API 并在请求发送之前对其进行了干预。
我需要做的一件事是确保所有重定向都经过我,以便控制 cookie。
我发现 proper way 要做的是设置:
HttpWebRequest.AllowAutoRedirect = false
然而,当我尝试这样做时,出现错误:
'HttpWebRequest' 不包含 'AllowAutoRedirect'...
的定义
这是示例代码:
using System;
using System.IO;
using System.Net;
using System.Threading.Tasks;
namespace PCLTest.Net
{
public class MyHttpWebRequest
{
HttpWebRequest request;
public bool AllowAutoRedirect
{
get
{
return request.AllowAutoRedirect;
}
set
{
request.AllowAutoRedirect = value;
}
}
}
}
我错过了什么?
从 PLC 目标中删除 Windows Phone(项目名称->选项->常规)
好的,所以我没有找到为什么这个 API 被隐藏以及如何让框架公开它,但我最终通过反射解决了这个问题,如下所示:
using System;
using System.IO;
using System.Net;
using System.Threading.Tasks;
namespace PCLTest.Net
{
public class MyHttpWebRequest
{
HttpWebRequest request;
public bool AllowAutoRedirect
{
get
{
Type t = request.GetType();
PropertyInfo pi = t.GetRuntimeProperty("AllowAutoRedirect");
return (bool)pi.GetValue(request);
}
set
{
request.AllowAutoRedirect = value;
}
}
}
}
我是 Xamarin 的新手,所以我希望这不是一个愚蠢的问题:)
我正在开发一个 PCL,它将用作 SDK(NuGet 包)供客户用于他们的 Http API。 在 iOS 和 Android 上都有很多逻辑需要完成,所以我认为 PCL 是可行的方法。 API 我包装的是 HttpWebRequest,基本上我公开了完全相同的 API 并在请求发送之前对其进行了干预。
我需要做的一件事是确保所有重定向都经过我,以便控制 cookie。
我发现 proper way 要做的是设置:
HttpWebRequest.AllowAutoRedirect = false
然而,当我尝试这样做时,出现错误: 'HttpWebRequest' 不包含 'AllowAutoRedirect'...
的定义这是示例代码:
using System;
using System.IO;
using System.Net;
using System.Threading.Tasks;
namespace PCLTest.Net
{
public class MyHttpWebRequest
{
HttpWebRequest request;
public bool AllowAutoRedirect
{
get
{
return request.AllowAutoRedirect;
}
set
{
request.AllowAutoRedirect = value;
}
}
}
}
我错过了什么?
从 PLC 目标中删除 Windows Phone(项目名称->选项->常规)
好的,所以我没有找到为什么这个 API 被隐藏以及如何让框架公开它,但我最终通过反射解决了这个问题,如下所示:
using System;
using System.IO;
using System.Net;
using System.Threading.Tasks;
namespace PCLTest.Net
{
public class MyHttpWebRequest
{
HttpWebRequest request;
public bool AllowAutoRedirect
{
get
{
Type t = request.GetType();
PropertyInfo pi = t.GetRuntimeProperty("AllowAutoRedirect");
return (bool)pi.GetValue(request);
}
set
{
request.AllowAutoRedirect = value;
}
}
}
}