怎么实现用HttpWebRequest登录淘宝

解决方案 »

  1.   

    模拟POST提交啊,你都知道用HttpWebRequest了 还不会吗?只是要注意保持COOKIE状态等
      

  2.   


    假如某个页面有个如下的表单(Form):view plaincopy to clipboardprint?
    <form name="form1" action="http:www.breakn.com/login.asp" method="post">   
    <input type="text" name="userid" value="">   
    <input type="password" name="password" value="">   
    </form> <form name="form1" action="http:www.breakn.com/login.asp" method="post">
    <input type="text" name="userid" value="">
    <input type="password" name="password" value="">
    </form>从表单可看到表单有两个表单域,一个是userid另一个是password,所以以POST形式提交的数据应该包含有这两项。
    其中POST的数据格式为:
    表单域名称1=值1&表单域名称2=值2&表单域名称3=值3……
    要注意的是“值”必须是经过HTMLEncode的,即不能包含“<>=&”这些符号。本例子要提交的数据应该是:
    userid=value1&password=value2用C#写提交程序:view plaincopy to clipboardprint?
    string strId = "guest";   
    string strPassword= "123456";   ASCIIEncoding encoding=new ASCIIEncoding();   
    string postData="userid="+strId;   
    postData += ("&password="+strPassword);   byte[] data = encoding.GetBytes(postData);   // Prepare web request...   
    HttpWebRequest myRequest =   
    (HttpWebRequest)WebRequest.Create("http:www.here.com/login.asp");   myRequest.Method = "POST";   
    myRequest.ContentType="application/x-www-form-urlencoded";   
    myRequest.ContentLength = data.Length;   
    Stream newStream=myRequest.GetRequestStream();   // Send the data.   
    newStream.Write(data,0,data.Length);   
    newStream.Close();   // Get response   
    HttpWebResponse myResponse=(HttpWebResponse)myRequest.GetResponse();   
    StreamReader reader = new StreamReader(response.GetResponseStream(),Encoding.Default);   
    string content = reader.ReadToEnd();   
    Console.WriteLine(content);
      

  3.   

    看你的结贴率……
    我记得淘宝的那个登录时需要下载一个ActiveX控件的吧。具体那个东西是用来做什么的就不太清楚了。是不是就是为了防止某些不正常的登录情况呢?