c#如何实现向网页提交数据并接收返回的数据
我想做一个自动向网站提交数据的小程序,在提交的时候接收返回的数据,但是这个网站有验证码,而且是必须输入值的时候验证吗才出来,我现在已经给网站的输入框赋值了,但是他的验证吗...
我想做一个自动向网站提交数据的小程序,在提交的时候接收返回的数据,但是这个网站有验证码,而且是必须输入值的时候验证吗才出来,我现在已经给网站的输入框赋值了,但是他的验证吗还是没出来,求高手帮我解答一下,网站是友商网,做发票查询的,谢啦
展开
4个回答
展开全部
从你的描述中,可以看出,你是没有明白人家网站,在你输出内容时,背后的执行逻辑。
所以,建议你先去看看:
【整理】关于抓取网页,分析网页内容,模拟登陆网站的逻辑/流程和注意事项
去搞懂基本的逻辑。
然后再用工具:
【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程
去分析出,你这里的,当在文本框输出内容时,内部发送了哪些GET或POST请求。
然后再参考:
【教程】抓取网并提取网页中所需要的信息 之 C#版
或:
【教程】模拟登陆网站 之 C#版(内含两种版本的完整的可运行的代码)
去写出你自己的代码。
如此,就可以实现模拟登陆了。
不过,需要说明的是,如你所说,验证码这部分的逻辑,还是需要手动输入验证码的。
上述过程,对于你想要搞懂如何获得验证码,则是足够用的了。
我之前就是自己把登陆12306网站时,所显示的验证码,弄出来了,哈哈。
(此处不能贴地址,请用google搜标题,即可找到帖子地址)
所以,建议你先去看看:
【整理】关于抓取网页,分析网页内容,模拟登陆网站的逻辑/流程和注意事项
去搞懂基本的逻辑。
然后再用工具:
【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程
去分析出,你这里的,当在文本框输出内容时,内部发送了哪些GET或POST请求。
然后再参考:
【教程】抓取网并提取网页中所需要的信息 之 C#版
或:
【教程】模拟登陆网站 之 C#版(内含两种版本的完整的可运行的代码)
去写出你自己的代码。
如此,就可以实现模拟登陆了。
不过,需要说明的是,如你所说,验证码这部分的逻辑,还是需要手动输入验证码的。
上述过程,对于你想要搞懂如何获得验证码,则是足够用的了。
我之前就是自己把登陆12306网站时,所显示的验证码,弄出来了,哈哈。
(此处不能贴地址,请用google搜标题,即可找到帖子地址)
展开全部
方法:private string GetWebContent(string Url)
{
string strResult="";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
//声明一个HttpWebRequest请求
request.Timeout = 30000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
StreamReader streamReader = new StreamReader(streamReceive, Encoding.GetEncoding("GB2312"));
strResult = streamReader.ReadToEnd();
}
catch
{
MessageBox.Show("出错");
}
return strResult;
}
{
string strResult="";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
//声明一个HttpWebRequest请求
request.Timeout = 30000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
StreamReader streamReader = new StreamReader(streamReceive, Encoding.GetEncoding("GB2312"));
strResult = streamReader.ReadToEnd();
}
catch
{
MessageBox.Show("出错");
}
return strResult;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
验证值就是为了防你这样的小程序,所以。。。去看看黑客的书吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
普通项目可以用json
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询