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;
            }
        }
    }
}