【发布时间】:2014-02-15 12:15:59
【问题描述】:
我想将数据发布到网站。我用这段代码处理 cookie:
CookieCollection cookies = new CookieCollection();
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(cookies); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
我使用以下代码处理视图状态值:
var doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(resp.GetResponseStream());
foreach (HtmlNode input in doc.DocumentNode.SelectNodes("//input"))
{
if (input.Attributes["value"] != null)
{
val = input.Attributes["value"].Value;
if (val.IndexOf("1")!=-1)
{
viewState = val;
}
}
}
最后我用这段代码发布数据:
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
cookies = response.Cookies;
response.Close();
string getUrl = "url";
string postData = String.Format(""+viewstate);
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(getUrl);
getRequest.CookieContainer = new CookieContainer();
getRequest.CookieContainer.Add(cookies);
我的主要问题是 viewState,因为如果我不发布 viewstate,它会返回相同的页面,或者如果我在发布数据之前解析 viewstate 值并发布数据,它会返回你的会话超时。例如,我可以登录 facebook,但无法将数据发布到使用 viewState 的网站。我无法弄清楚这种情况。我想我必须在与 post 相同的请求中解析视图状态,但我知道 webrequest 不能被重用。你能帮帮我吗?
【问题讨论】:
-
你能分享链接和你想做什么吗?
-
apps.db.ripe.net/syncupdates/simple-rpsl.html