从方法引用StreamReader到另一个方法

时间:2016-07-03 07:48:12

标签: c# .net wpf visual-studio visual-studio-2015

我有一个名为login(String txtEmail, String txtPassWord)的方法 该方法为特定网站生成HttpWebRequest "POST"类型,使用StreamWriter写入要提交的数据,回复,然后使用StreamReader和&gt读取回复;>

 using (StreamReader read = new StreamReader(loginRes.GetResponseStream()))
     pageSource = read.ReadToEnd();

这是在方法内。 我有另一个名为GetData()的方法,它使用HTMLAgilityPack从网站获取一些特定的段落 我的问题是如何从方法GetData()访问pageSource中的数据? 所以GetData()就像这样>>

HtmlAgilityPack.HtmlDocument CPC = new HtmlAgilityPack.HtmlDocument();
     return CPC.Load(read.ReadToEnd());

这会产生错误,表示read isn't in the current context. 或者变成这样>>

HtmlAgilityPack.HtmlDocument CPC = new HtmlAgilityPack.HtmlDocument();
     return CPC.Load(pageSource);

但这会产生一个错误can't convert void to string, 我只想让read可读GetData() 我的应用程序>>

的源代码中也有这个
public String pageSource = String.Empty;

1 个答案:

答案 0 :(得分:0)

return CPC.Load()不返回任何内容,请先调用Load方法并在单独的命令中返回CPC本身。

这样:

using (StreamReader read = new StreamReader(loginRes.GetRequestStream()))
    return GetData(read);

HtmlAgilityPack.HtmlDocument GetData(StreamReader reader)
{
    HtmlAgilityPack.HtmlDocument CPC = new HtmlAgilityPack.HtmlDocument();
    CPC.Load(reader);
    return CPC;
}

或使用LoadHtml,它采用字符串

HtmlAgilityPack.HtmlDocumentGetData(string doc)
{
    HtmlAgilityPack.HtmlDocument CPC = new HtmlAgilityPack.HtmlDocument();
    CPC.LoadHtml(doc);
    return CPC;
}