webBrowser1.Navigate( "http://www.ems.com.cn/");
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
HtmlElement txt = webBrowser1.Document.All["mailNum"];
txt.SetAttribute("value", "EC244752724CN");
HtmlElement btn = webBrowser1.Document.All["btchaxun_r1_c2"];
btn.InvokeMember("Click");
while (webBrowser1.Url.ToString().IndexOf("qcgzOutQueryAction.do") < 0)
{
Application.DoEvents();
}
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
if (webBrowser1.Document.Body.InnerHtml.IndexOf(@"已妥投")> 0)
{
MessageBox.Show("OK");
}
大哥.上面的代码是你给我的.还有没有别的办法也能实现这个目地啊.
这个有时候很慢..
大哥帮帮我46000129
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
HtmlElement txt = webBrowser1.Document.All["mailNum"];
txt.SetAttribute("value", "EC244752724CN");
HtmlElement btn = webBrowser1.Document.All["btchaxun_r1_c2"];
btn.InvokeMember("Click");
while (webBrowser1.Url.ToString().IndexOf("qcgzOutQueryAction.do") < 0)
{
Application.DoEvents();
}
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
if (webBrowser1.Document.Body.InnerHtml.IndexOf(@"已妥投")> 0)
{
MessageBox.Show("OK");
}
大哥.上面的代码是你给我的.还有没有别的办法也能实现这个目地啊.
这个有时候很慢..
大哥帮帮我46000129
解决方案 »
- 参数化查询 '(@product_id int,@product_type int,@product_p' 需要参数 @product_price,但未提供该参
- 数据库问题
- 急救,请各位老师帮帮忙。。。
- 如何能够在循环中,只要其中一个循环出错就回滚
- 制作浏览器
- DataColumn.Caption怎么应用?
- 用C#写了一个静态方法,将日志写入文件系统,可是有时候报:文件正被另一个进程使用
- =============tcp通讯的一个问题============
- Web页面上有一个<asp:panel>,是隐藏的,按下一个button后panel会显示出来,现在要在它显示出来后自动将光标定位到panel上面的<asp:textb
- C# 调用ipaddress.parse()接口提示配置系统未能初始化
- 看到一个问题不会,所以请教下
- 一个gridview引发的事件的问题(很急)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Step1);
webBrowser1.Navigate("http://www.ems.com.cn/");
} void Step1(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser wb = sender as WebBrowser;
wb.DocumentCompleted -= new WebBrowserDocumentCompletedEventHandler(Step1);
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Step2);
HtmlElement txt = webBrowser1.Document.All["mailNum"];
txt.SetAttribute("value", "EC244752724CN");
HtmlElement btn = webBrowser1.Document.All["btchaxun_r1_c2"];
btn.InvokeMember("Click");
}
void Step2(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser wb = sender as WebBrowser;
if (wb.Url.ToString().IndexOf("qcgzOutQueryAction.do") >-1) {
wb.DocumentCompleted -= new WebBrowserDocumentCompletedEventHandler(Step2);
if (webBrowser1.Document.Body.InnerHtml.IndexOf(@"已妥投") > 0)
{
MessageBox.Show("OK");
} }
}
}
static string GetPage(string url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
try
{
using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
{
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
return sr.ReadToEnd();
}
}
}
catch (System.Exception e)
{
return e.Message;
}
finally
{
req.Abort();
}
}
System.Collections.Specialized.NameValueCollection PostVars = new System.Collections.Specialized.NameValueCollection();
//下面这3行自己改,改成你要post的数据,前面是Name后面是对应的 value
PostVars.Add("userid", ID);
PostVars.Add("password", Pwd);
PostVars.Add("phonenumber", destNumber);
byte[] byt = null;
try
{
byt = WebClientObj.UploadValues(Url, "POST", PostVars); //Url自己设,你要Post的页面Url
}
catch (WebException exc)
{
Trace.WriteLine(exc.Message);
} String StrReturn = System.Text.Encoding.GetEncoding("gb2312").GetString(byt);
Trace.WriteLine(StrReturn); if (StrReturn.IndexOf("已妥投", 0) != -1)
{
//成功了
}
System.Collections.Specialized.NameValueCollection PostVars = new System.Collections.Specialized.NameValueCollection();
////下面这3行自己改,改成你要post的数据,前面是Name后面是对应的 value
//PostVars.Add("userid", "ID");
PostVars.Add("password", Pwd);
PostVars.Add("mailNum", "EC244752724CN");
byte[] byt = null;
try
{
byt = WebClientObj.UploadValues("http://www.ems.com.cn/", "POST", PostVars); //Url自己设,你要Post的页面Url
}
catch
{
//Trace.WriteLine(exc.Message);
} String StrReturn = System.Text.Encoding.GetEncoding("gb2312").GetString(byt);
richTextBox1.Text = StrReturn;
if (StrReturn.IndexOf("已妥投", 0) != -1)
{
MessageBox.Show("OK");
}
怎么不对呢?????????????
你写的代码.用线程调用button1_Click(null,null)这个事件后.
void Step1 和void Step2 这两个事件为什么没触发呢.
//打开网页,取得需要的value
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.ems.com.cn/");
req.Accept = "*/*";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)";
CookieContainer ReqCookies= new CookieContainer();
req.CookieContainer = ReqCookies;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
string strHtml;
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
strHtml= sr.ReadToEnd();
}
Regex r;
MatchCollection m;
r = new Regex(@"name=""myEmsbarCode"" value=""(.+?)""", RegexOptions.IgnoreCase);
m = r.Matches(strHtml);
String myEmsbarCode = m[0].Groups[1].Value;
//你要post的数据,格式可以使用sniffer得到
req = (HttpWebRequest)HttpWebRequest.Create("http://www.ems.com.cn/qcgzOutQueryAction.do");
req.Accept = "*/*";
req.Referer = "http://www.ems.com.cn/";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)";
req.ContentType = "application/x-www-form-urlencoded";
req.CookieContainer = ReqCookies;
req.Method = "POST";
string PostData = "reqCode=browseBASE&myEmsbarCode=" + myEmsbarCode + "&mailNum=EC244752724CN";
byte[] b = Encoding.Default.GetBytes(PostData);
req.ContentLength = b.Length;
using (System.IO.Stream sw = req.GetRequestStream())
{
sw.Write(b, 0, b.Length);
}
res = (HttpWebResponse)req.GetResponse();
using (StreamReader sr = new StreamReader(res.GetResponseStream(),Encoding.GetEncoding("gb2312")))
{
strHtml = sr.ReadToEnd();
}
if (strHtml.IndexOf("已妥投", 0) != -1)
{
MessageBox.Show("OK");
}
目标Url不是http://www.ems.com.cn/,是你接收post数据那个页面
例如http://www.ems.com.cn/qcgzOutQueryAction.do
webBrowser1 和这个 HttpWebRequest 在同一个机器上哪个快呢