相关疑难解决方法(0)

在c#中使用windows应用程序执行http方法

有许多站点在表单提交时调用脚本并使用HTTP POST或GET传递参数,使用Web调试器我已经找到了传递的参数.现在我希望通过我在C#中的Windows应用程序做同样的事情.我怎样才能实现这样的功能?

我目前在C#中使用HttpWebRequest和HttpWebResponse类.但这是一个痛苦,因为我必须为我尝试加载和工作的每个页面编写显式代码.例如,我正在尝试将用户名和密码传递到php页面并获取响应,该响应将发送cookie和页面作为回报,基于此我确定用户是否已登录.

HttpWebRequest loginreq = createreq("http://www.indyarocks.com/mobile/index.php");
                String logintext = "username=" + TxtUsrname.Text + "&pass=" + TxtPasswd.Password + "&button.x=0&button.y=0";
                loginreq.ContentLength = logintext.Length;
                StreamWriter writerequest = new StreamWriter(loginreq.GetRequestStream());
                writerequest.Write(logintext);
                writerequest.Close();
                HttpWebResponse getloginpageresponse = (HttpWebResponse)loginreq.GetResponse();
                cookie = getloginpageresponse.Cookies[0];
                BinaryFormatter bf1 = new BinaryFormatter();
                Stream f1 = new FileStream("E:\\cookie.dat", FileMode.OpenOrCreate);
                bf1.Serialize(f1, cookie);
                f1.Close();

                string nexturl = getloginpageresponse.Headers[HttpResponseHeader.Location];
                StreamReader readresponse = new StreamReader(getloginpageresponse.GetResponseStream());
                if (nexturl == "p_mprofile.php")
                {
                    MessageBox.Show("Login Successful");
                    GrpMsg.IsEnabled = true;
                }
                else if (nexturl == "index.php?msg=1")
                {
                    MessageBox.Show("Invalid Credentials Login again"); …
Run Code Online (Sandbox Code Playgroud)

c# windows httpwebrequest httpwebresponse

2
推荐指数
1
解决办法
4558
查看次数

标签 统计

c# ×1

httpwebrequest ×1

httpwebresponse ×1

windows ×1