Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将代码从.NetFramework 3.5转换为Xamarin PCL_C#_Android_Xamarin_Uwp_Portable Class Library - Fatal编程技术网

C# 将代码从.NetFramework 3.5转换为Xamarin PCL

C# 将代码从.NetFramework 3.5转换为Xamarin PCL,c#,android,xamarin,uwp,portable-class-library,C#,Android,Xamarin,Uwp,Portable Class Library,我有以下代码在一个项目中运行良好,我可以在Android中引用它,但不能在UWP中引用。这就是为什么我想把代码转换成我的PCL项目 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace NetScraperLibrary { public class NetScraper { pu

我有以下代码在一个项目中运行良好,我可以在Android中引用它,但不能在UWP中引用。这就是为什么我想把代码转换成我的PCL项目

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;

namespace NetScraperLibrary
{
public class NetScraper
{
    public NetScraper()
    {
    }

    public ScrapedPage GetPage(string uri)
    {
        string strWebPage = "";
        // create request
        System.Net.WebRequest objRequest = System.Net.HttpWebRequest.Create(uri);
        // get response
        System.Net.HttpWebResponse objResponse;
        objResponse = (System.Net.HttpWebResponse)objRequest.GetResponse();
        // get correct charset and encoding from the server's header
        string Charset = objResponse.CharacterSet;
        Encoding encoding = Encoding.GetEncoding(Charset);

        // read response into memory stream
        MemoryStream memoryStream;
        using (Stream responseStream = objResponse.GetResponseStream())
        {
            memoryStream = new MemoryStream();

            byte[] buffer = new byte[1024];
            int byteCount;
            do
            {
                byteCount = responseStream.Read(buffer, 0, buffer.Length);
                memoryStream.Write(buffer, 0, byteCount);
            } while (byteCount > 0);
        }

        // set stream position to beginning
        memoryStream.Seek(0, SeekOrigin.Begin);

        StreamReader sr = new StreamReader(memoryStream, encoding);
        strWebPage = sr.ReadToEnd();

        // Check real charset meta-tag in HTML
        int CharsetStart = strWebPage.IndexOf("charset=");
        if (CharsetStart > 0)
        {
            CharsetStart += 8;
            int CharsetEnd = strWebPage.IndexOfAny(new[] { ' ', '\"', ';' }, CharsetStart);
            string RealCharset =
                   strWebPage.Substring(CharsetStart, CharsetEnd - CharsetStart);

            // real charset meta-tag in HTML differs from supplied server header???
            if (RealCharset != Charset)
            {
                // get correct encoding
                Encoding CorrectEncoding = Encoding.GetEncoding(RealCharset);

                // reset stream position to beginning
                memoryStream.Seek(0, SeekOrigin.Begin);

                // reread response stream with the correct encoding
                StreamReader sr2 = new StreamReader(memoryStream, CorrectEncoding);

                strWebPage = sr2.ReadToEnd();
                // Close and clean up the StreamReader
                sr2.Close();
            }
        }

        // dispose the first stream reader object
        sr.Close();

        ScrapedPage page = new ScrapedPage(uri, strWebPage);//sb.ToString());
        return page;
    }

}
}
主要的问题是,
objResponse.CharacterSet
不存在,非常奇怪?
同时关闭streams
sr2.Close();高级关闭()。最后,不能再同步调用webresponse了。有谁能帮我解决转换中缺少的这些功能,因为我还没有弄清楚?

Xamarin正在转向.NET标准2.0支持。你应该放弃PCL,也搬到那个新平台上去。@LexLi似乎.NET标准2.0还没有真正准备好,或者我遗漏了一些信息吗?@JTIM如果你等几周,它就会准备好:-)@karann MSFT我觉得这个挑逗者应该有更多的信息?[非常兴奋!]@karann MSFT有更新吗?还是问题的答案?Xamarin正在转向.NET标准2.0支持。你应该放弃PCL,也搬到那个新平台上去。@LexLi似乎.NET标准2.0还没有真正准备好,或者我遗漏了一些信息吗?@JTIM如果你等几周,它就会准备好:-)@karann MSFT我觉得这个挑逗者应该有更多的信息?[非常兴奋!]@karann MSFT有更新吗?还是问题的答案?