2012-09-05 1 views
0

로그인 성공 여부를 어떻게 확인할 수 있습니까? httpwebrequest와 httpresponse를 사용하여 로그인 성공을 어떻게 확인할 수 있습니까?Httpwebrequest 및 httpwebresponse를 사용하여 로그인 성공을 식별하는 방법은 무엇입니까?

코드

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Net; 
using System.IO; 
using System.Diagnostics; 

namespace Way2sms 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 
    private CookieCollection cc = new CookieCollection(); 
    private void Send_Click(object sender, EventArgs e) 
    { 
     string uid = txtUsername.Text.Trim(); 
     string password = txtpass.Text.Trim(); 
     string message = txtmsg.Text.Trim(); 
     string no = txtno.Text.Trim(); 

     try 
     { 
      WebBrowser wb = new WebBrowser(); 

      HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://site5.way2sms.com/Login1.action"); 

      req.Method = "POST"; 
      CookieContainer con = new CookieContainer(); 
      req.CookieContainer = con; 
      req.CookieContainer.Add(GetC()); 
      req.KeepAlive = true; 

      req.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"; 

      req.ContentType = "application/x-www-form-urlencoded"; 
      req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 

      req.Referer = "http://site5.way2sms.com/content/index.html"; 

      byte[] data = System.Text.Encoding.Default.GetBytes("username=" + uid + "&password=" + password); 

      req.ContentLength = data.Length; 

      req.AllowAutoRedirect = true; 

      req.ServicePoint.Expect100Continue = true; 

      Stream str = req.GetRequestStream(); 

      str.Write(data, 0, data.Length); 

      str.Close(); 

      HttpWebResponse res = (HttpWebResponse)req.GetResponse(); 
      wb.ScriptErrorsSuppressed = true; 
      wb.DocumentText = new StreamReader(res.GetResponseStream()).ReadToEnd(); 

      webBrowser1.Navigate(wb.DocumentText); 


      HttpWebRequest X = (HttpWebRequest)WebRequest.Create("http://site5.way2sms.com/quicksms.action"); 
      X.Method = "POST"; 
      X.CookieContainer = con; 
      X.KeepAlive = true; 
      X.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"; 

      X.ContentType = "application/x-www-form-urlencoded"; 

      X.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 

      X.Referer = "http://site5.way2sms.com/jsp/InstantSMS.jsp"; 

      byte[] datax = Encoding.Default.GetBytes("HiddenAction=instantsms&catnamedis=Birthday&Action=sa65sdf656fdfd&chkall=on&MobNo=" + no + "&textArea=" + message); 

      X.ContentLength = datax.Length; 

      X.AllowAutoRedirect = true; 

      X.ServicePoint.Expect100Continue = true; 

      str = X.GetRequestStream(); 

      str.Write(datax, 0, datax.Length); 

      str.Close(); 

      HttpWebResponse resx = (HttpWebResponse)X.GetResponse(); 

      wb.DocumentText = new StreamReader(resx.GetResponseStream()).ReadToEnd(); 
     } 
     catch (Exception ex) 
     { 

     } 

    } 
    private CookieCollection GetC() 
    { 

     HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://site5.way2sms.com/"); 

     req.CookieContainer = new CookieContainer(); 

     req.CookieContainer.Add(cc); 

     req.CookieContainer.Add(cc); 

     req.KeepAlive = true; 

     req.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"; 

     req.ContentType = "application/x-www-form-urlencoded"; 

     req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 

     req.Referer = "http://site5.way2sms.com/content/index.html"; 

     req.AllowAutoRedirect = true; 

     req.ServicePoint.Expect100Continue = true; 

     return ((HttpWebResponse)req.GetResponse()).Cookies; 
    } 

여기 way2sms를 사용하여 SMS를 보내는 내 코드입니다. 사용자 이름과 암호를 입력했는지 확인하고 싶습니다. 맞습니까? 그래서 어떻게 확인할 수 있습니까?

+0

응답 내용은 무엇입니까? 또는 더 나은 질문, httpwebrequest와 httpwebresponse가 어떻게 작동하는지 알고 있습니까? – Steven

+1

actully 로그인 확인에 대한 응답을 사용하는 방법을 이해하지 못했습니다 –

+0

제 대답을보세요. – Steven

답변

0

당신이 필요로하는 일을하기 위해, 당신의 HttpWebRequest와 HttpWebResponse 클래스 이해할 필요가 수정 됨. 너에게 좋은 그림을 줄이 기사를 보라.

Using HttpWebRequest and HttpWebResponse

그 후,이 기능에 의해 응답을 통해 검색 할 수 있습니다 : 당신이 "텍스트"변수로 할

WebRequest _request = (HttpWebRequest)WebRequest.Create("UrlToGet"); 
using (WebResponse response = _request.GetResponse()) 
{ 
    using (StreamReader reader = new StreamReader(response.GetResponseStream())) 
    { 
     string text = reader.ReadToEnd(); 
    } 
} 

, 당신 개까지입니다.

+0

링크에서 요약/세부 정보를 추가하려면 반드시 게시물을 편집하십시오. 그것이 지금 서서 그것은 주석이어야합니다. –