C# 如何使用自己的asp.net页面访问网站?

C# 如何使用自己的asp.net页面访问网站?,c#,asp.net,visual-studio,sms,C#,Asp.net,Visual Studio,Sms,我想在这里调用另一个网站url,登录到它,并使用我的asp.net项目使用它的功能之一。我正在asp.net的一个项目中工作,我的基于web的程序将向手机发送短信。由于我不想订阅任何网关或类似网站,我发现了以下网站: http://sms80.com 现在我想做的是,从我的asp.net页面,我需要访问这个网站,登录并使用它的服务,但所有这些都必须以编程方式隐藏在我的asp.net页面中 我不知何故检查了登录名文本框和密码文本框等网站元素。我不是在尝试黑客攻击,但我只需要知道我在asp.net

我想在这里调用另一个网站url,登录到它,并使用我的asp.net项目使用它的功能之一。我正在asp.net的一个项目中工作,我的基于web的程序将向手机发送短信。由于我不想订阅任何网关或类似网站,我发现了以下网站:

http://sms80.com
现在我想做的是,从我的asp.net页面,我需要访问这个网站,登录并使用它的服务,但所有这些都必须以编程方式隐藏在我的asp.net页面中

我不知何故检查了登录名文本框和密码文本框等网站元素。我不是在尝试黑客攻击,但我只需要知道我在asp.net中以编程方式在该网站中执行的过程(我使用我的帐户登录,然后编写我的消息,并编写手机号码和发送)

我做了一些研究,发现我可以直接在url中发送或传递值,例如:

your_url.aspx?your_url_variable=" + @variable_from_form

但它似乎不起作用。还有其他方法吗?

如果另一个网站没有API以编程方式登录,这不是一个简单的过程

它需要大量的探索性工作和对你试图登录的网站如何工作的分析。该过程包括首先使用诸如以下工具确定请求/响应通信post数据中发送的内容

然后,您需要使用/classes或class构建一系列get和post,以便模仿浏览器的操作方式

例如:

string url = "http://sms80.com";
HttpWebRequest http = (HttpWebRequest)WebRequest.Create(url);
http.CookieContainer = _cookieJar;
http.Connection = "Keep-alive";
http.Method = "POST";
http.ContentType = "application/x-www-form-urlencoded";
string postData="username=" + username + "&password=" + password;
byte[] dataBytes = UTF8Encoding.UTF8.GetBytes(postData);
http.ContentLength = dataBytes.Length;
Stream postStream = http.GetRequestStream();
postStream.Write(dataBytes, 0, dataBytes.Length);
postStream.Close();
// see if we're logged in
HttpWebResponse httpResponse = (HttpWebResponse)http.GetResponse();
// continue (read the response etc.)

您在问题中描述的内容称为。即使您可能会在这里进行干预并模拟来自HTML表单的数据请求,服务器也可能会检查HTTP头中的一些其他数据,例如引用的网页(应该是表单的页面!),并拒绝执行您的请求。我可以想象,一个专为发送短信而设计的网站可能有这种保护机制


实现该功能的正确方法是请求访问API,例如,访问您可能从应用程序调用的web服务,以执行某些操作,如发送SMS。这可能不如从webform发送SMS便宜,但这是在应用程序中嵌入此功能的唯一合法方法

我想你需要先读一本关于黑客的书:)我有点困惑。这段代码中应该在哪里指定URL?@Memoc-在第一行中…我编辑了我的答案以便更清楚。用户名和密码变量取决于网站使用的变量吗?@Memoc-当然。这就是为什么您需要查看Fiddler中实际的POST字符串的原因。我尝试了Fiddler,并尝试在登录网站时捕获信息。只有在这个信息,我看到的用户名和密码的信息__VIEWSTATE=%2WEPDWULLTE2MDYNZMZLKGAEFHL9FQ29UDHJVBHNSZF1AXJLUG9ZDEJHY2TLZXLFXXYCBQLDAGVJA0JVEDEFDELTYWDLQNV0DG9UMWQ2RGFGJ5PIJMDWBmpozYWAAM3R和UUU事件验证=%2WEWBGK19VRAGL18O7VBGKL1BKQQK1QBSRCC57CQLSWPNTCBSVCN5URCE12HRSF9C0V9VQPMAK=2&AID=2&TxterName=0149116028&TXTN1=2。这意味着IMAGENEX=按钮是txtSerName和txtPassword是它们的变量吗?假设它是一个文本框名称。