在PCL中找不到HttpWebRequiest.AllowAutoRedirect

时间:2017-05-29 07:47:28

标签: xamarin portable-class-library

我是Xamarin的新手,所以我希望这不是一个愚蠢的问题:)

我正在开发一个PCL,它将作为SDK(NuGet包)供客户用于他们的Http API。 应该在iOS和Android上完成很多逻辑,所以我认为PCL是要走的路。 我正在包装的API是HttpWebRequest,基本上我公开了完全相同的API并在发送之前插入请求。

我需要做的一件事是确保所有重定向都通过我,以便控制cookie。

我发现要做的proper way是: A B C 2 bye Hello

然而,当我尝试这个时,我收到一个错误: 'HttpWebRequest'不包含'AllowAutoRedirect'的定义......

这是一个示例代码:

HttpWebRequest.AllowAutoRedirect = false

我错过了什么?

2 个答案:

答案 0 :(得分:0)

从PLC目标 Windows Phone 中删除(ProjectName->选项 - >常规)

答案 1 :(得分:0)

好的,所以我没有找到隐藏此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;
            }
        }
    }
}