HttpHelper 请从网络中搜索;

public partial class LoginTMall : Form

{

public LoginTMall()

{

InitializeComponent();

}

private void btnLogin_Click(object sender, EventArgs e)

{

string postDate = getPostString();

HttpItem itemLogin = new HttpItem()

{

URL = "https://login.taobao.com/member/login.jhtml",

Method = "POST",

ContentType = "application/x-www-form-urlencoded",

Referer = "https://www.taobao.com/",

Postdata = postDate,

Cookie = CommonDB.tmailModel.cookie,

};

HttpHelper helperLogin = new HttpHelper();

HttpResult resultLogin = helperLogin.GetHtml(itemLogin);

CommonDB.tmailModel.cookie = resultLogin.Cookie;

string html = resultLogin.Html;

if (html.ToLower().Contains("gotoURL:\"http://www.tmall.com/\"".ToLower()) && html.ToLower().Contains("gotoTop:true".ToLower()))             {

MessageBox.Show("登录成功!");

}

else

{

string namePwdNotMatch = "您输入的密码和账户名不匹配,请重新输入。";

string reInputcheckcode = "验证码错误,请重新输入";

string checkCodeNeedInput = "为了您的账户安全,请输入验证码。";

if (html.Contains(namePwdNotMatch))

{

MessageBox.Show(namePwdNotMatch);

return;

}

if (html.Contains(checkCodeNeedInput) || html.Contains(reInputcheckcode))

{

string checkCodeUrl = "<img id=\"J_StandardCode_m\" src=\"https://s.tbcdn.cn/apps/login/static/img/blank.gif\"";

int index = html.IndexOf(checkCodeUrl);

html = html.Substring(index, html.Length - index);

string datasrc = "data-src=\"";

index = html.IndexOf(datasrc);

html = html.Substring(index, html.Length - index);

html = html.TrimStart(datasrc.ToCharArray());

index = html.IndexOf("\"");

html = html.Substring(0, index);

setCheckCode(html);

MessageBox.Show(checkCodeNeedInput);

return;

}

}

}

private void setCheckCode(string url)

{

try

{

picBox.Image = Image.FromStream(System.Net.WebRequest.Create(url).GetResponse().GetResponseStream());

}             catch (Exception ex)             {                 Text = ex.Message;             }         }

private void LoginTMall_Load(object sender, EventArgs e)         {         }

private string getPostString()

{

PostParaPair model = new PostParaPair();

string checkCode = txtCheckCode.Text.Trim();

if (checkCode.Length != 0)

{

model.Add(new PostParaPair()

{ Key = "TPL_checkcode", Value = checkCode });

}

string pwd = txtPwd.Text.Trim();

if (pwd.Length != 0)

{

model.Add(new PostParaPair() { Key = "TPL_password", Value = pwd });             }

string name = txtUName.Text.Trim();

if (name.Length != 0)

{

model.Add(new PostParaPair() { Key = "TPL_username", Value = name });

}

model.Add(new PostParaPair() { Key = "allp", Value = "assets_css=2.0.0/login_pc.css&enup_css=2.0.0/enup_pc.css&assets_js=2.3.8/login_performance.js" });

model.Add(new PostParaPair() { Key = "CtrlVersion", Value = "1,0,0,7" });             model.Add(new PostParaPair() { Key = "fc", Value = "default" });

model.Add(new PostParaPair() { Key = "from", Value = "tmall" });

model.Add(new PostParaPair() { Key = "full_redirect", Value = "true" });

model.Add(new PostParaPair() { Key = "loginASR", Value = "0" });

model.Add(new PostParaPair() { Key = "loginASRSuc", Value = "0" });

model.Add(new PostParaPair() { Key = "loginsite", Value = "0" });

model.Add(new PostParaPair() { Key = "loginType", Value = "3" });

model.Add(new PostParaPair() { Key = "naviVer", Value = "ie|9" });

model.Add(new PostParaPair() { Key = "newlogin", Value = "0" });

model.Add(new PostParaPair() { Key = "osVer", Value = "windows|6.1" });

model.Add(new PostParaPair() { Key = "poy", Value = "XOR_1_000000000000000000000000000000_65585B56440B6279736B017E6F0065" });             model.Add(new PostParaPair() { Key = "pstrong", Value = "2" });

model.Add(new PostParaPair() { Key = "sr", Value = "1366*768" });

model.Add(new PostParaPair() { Key = "style", Value = "miniall" });

model.Add(new PostParaPair() { Key = "sub", Value = "false" });

model.Add(new PostParaPair() { Key = "support", Value = "000001" });

model.Add(new PostParaPair() { Key = "tid", Value = "XOR_1_000000000000000000000000000000_602B4C5345787C007D7D057F" });             model.Add(new PostParaPair() { Key = "TPL_redirect_url", Value = "http://www.tmall.com/" });

model.Add(new PostParaPair() { Key = "ua", Value = "128JqNYCOQNFccufusYO71CC4hyOrlKBYpjQqg=|JaNECYpwPbpBBIV6MrRKA+k=|JKFGYfR2T4A7K/NKU5Z/L7pIFo1kT5E0LPRIR9JEZQ==|I6VcDJljK61XG5xuJKdYFZdpL6hNAYJwOL5FAIR9NLRLA4F5NbRdfA==|IqRWBuoQQMI5ceoQXMcuMb0UGshidflPWs9ZeA==|Ia5JF4IU|IK5JF4IU|L6lTA+8GEtFuYqZXBJw7KPhaSNFuc6sCH8ciPeVDEMpkdaAOAJg/LPxeTNV0YKMFFYBnOaw6Gw==|LqpNau8UXMc7d/gfUNUufvoJRt0naOkURMQ5feYcU9Ivf/8GQqg+|LatTA+8GLfNWTpYqJbJOEItiSbcybugXR8Ana/AKQsApCOI=|LKpRAZQETMwydvIVNaBaEpRuIqVZFJRqJqdeXtk8d/YMQM4ze/8FTMw2f/sATqVMHJoMUrg=|K6tMa/4XR8Anbu4RVL4o|KqhPaP1iTrUhLftDTIwoJvVhLLleef8CR9wmb+t9LapNE4ZhL61eEZQCIw==|KalOafxjT7QgLPpCTY0pJ/RgLbhfEolwObZOC+F3|KKhPaP1iTrUhLftDTIwoJvVhLLleEolwNbVNAet9|N7dQd+J9Uao+MuRcU5M3Oep+M6ZBDZZvKqpSF/1r|NrZRduNiQaUPFcdpca8QXd4kae4VUNEuYe4WWcwrZv0EQcE+dpwK|NbdQd+ILW7dNCJNpLK07a+wLVcAnaO4VUNNFZA==|NLRTdOFgQ6cNF8Vrc60SX9wma+wXUtMsY+wUW84pZf4GS8w+dZ8J|M7NUc+ZnRL8bAN57RZ0ucOsRQcU/cvUOL8U=|MrBXcOVkR7MXD91fTYo0PNR2KLMjbO4JRMo0FY51JbBZCY13PrtIaYM=|MbFWceRlRr0ZAtx5R58scukSQsY8dfECI8k=|MLBXcOVkR7MXD91fTYo0PNR2KLNJGZ1nLq1VdJ4=|P71afegBUb1CDJdtKK44aO8IVsMka+0RVNJEZQ==|Pr5ZfutqSb0ZAdNRQ4Q6Mtp4Jr1GFpJoI61ffpQ=|Pb1afegBUdcwf/kKRsVTcg==|PLxbfOkAUNcwf/kLR8BWdw==|O7tce+5vTLgcBNZURoE/N999I7hCEpZsKa5Wd50=|OrleeewFVdAia/AKTs8oZ+IaUN5IaQ==|Obtce+5vTKgXCtN8YaQLNOxDWs8oD4p0MKtRGpp9M7BMHJpmKbJKAJtiJswrZ/wVAcRqcPoUWt43Z+MaXtkqC+E=|OLhfeO1sT7sfB9VXRYI8NNx+ILtAEJRtKa9Tcpg=|B4dgR9JTcJQrNu9AXZg3CNB/ZvMUWcI6dPsCTacx|BoZhRtNScZUqN+5BXJk2CdF+Z/IVWcI6dPsHQ6k/|BYViRdBRcoYiOuhqeL8BCeFDHYZ8LKhRFZpgQas=|BIZhRtNScZUqN+5BXJk2CdF+Z/IVMrdKApljKKhPAYJ+LqhUG4B4MqlQFP4ZVc4nM/ZYQsgmaOwFVdEuYucfPtQ=|A4NkQ9ZXdIAkPO5sfrkHD+dFG4B7K69QHJhgQas=|AoJlQtdWdZEuM+pFWJ0yDdV6Y/YRXMc/d/APQ6k/|AYFmQdRVdpItMOlGW54xDtZ5YPUSXsU9dfMIRa85|AIBnQNVUd4MnP+1vfboEDORGGIN5Ka1SH5hlRK4=|D41qTdgxYY1wO6BaHpwKWt06ZPEWWdgha+54WQ==|Do5pTttaeY0pMeNhc7QKAupIFo12JqJfEZFuT6U=|DY1qTdgxYecAT843c/BmRw==|DIxrTNkwYOcAT842f/5oSQ==|C4tsS95ffIgsNOZkdrEPB+9NE4hyIqZbFJVuT6U=|CotsS95ffIgsNOZkdrEPB+9NE4h1MapRAYV4PbNKa4E=|CYhvSN1cf4svN+VndbIMBOxOEItxO6BbC49zPb1BYIo=|CIluSdxdfoouNuRmdLMNBe1PEYp2OKNcDIh0O7tHZow=|F5ZxVsNCYZUxKft5a6wSGvJQDpVrJ7xHF5NgK6hSc5k=|FpdwV8JDYJQwKPp4aq0TG/NRD5RuJL9EFJBiL6tSc5k=|FZRzVMFAY5czK/l7aa4QGPBSDJdrIrlGFpJgLqxef5U=|FJRzVMFAY5czK/l7aa4QGPBSDJdsPL9FCItyU7k=|E5F2UcRFZoI8IvhaUrYJFNd1av8YP7pBCJNqIq07a+wLVcAnb+wWX9FHZg==|EpJ1UsdGZYE/IftZUbUKF9R2afwbVs0yevwATqQy|EZJpJb5FFZB3OrlDE5dpIrlHApllLLdNAINkKbJIAoViJ6BHCIdgLalOAYBnKKpNAoFmKa1KDpVtILtDD5RqOr9MHJllNbBXGZt8MrFWGJx7NbBXBoB5KbNMHJpoOL5NHZtnN7FMHIZ0JKJdDYtzI6VcDIpwILpACJNhMb5ZEol0JL5NHYd1Jb9FCZJ0Ob9YCY92JrxGCZJ0OaJECotsPbkv" });             model.Add(new PostParaPair() { Key = "umto", Value = "T7a1f5ec30a29c6b7e223b6872fb8637a" });

return model.ToString();         }     }

PostParaPair类的定义
public class PostParaPair
{
    List<PostParaPair> paraList = new List<PostParaPair>();
    public string Key { get; set; }
    public string Value { get; set; }
    public void Add(PostParaPair para)
    {
        paraList.Add(para);
    }
    public override string ToString()
    {
        string reString = "";
        if (paraList.Count != 0)
        {
            foreach (PostParaPair item in paraList)
            {
                reString += string.Format("&{0}={1}", item.Key, CommonMethod.GetUrlEncode(item.Value));
            }
        }
        return reString.TrimStart('&');
    }
}

CommonMethod.GetUrlEncode的定义:

public static string GetUrlEncode(string content)
    {
        return System.Web.HttpUtility.UrlEncode(content, System.Text.Encoding.UTF8);
    }

天猫登录源码 POST C#的更多相关文章

  1. Yii2 使用 QQ 和 Weibo 第三方登录源码

    我们社区在 yii2-authclient 多次升级后,登录异常.一直想寻求一种通用的方法,尽量不重写 OAuth2, BaseOAuth 以及 OAuthToken 类, 所以本次直接在 initU ...

  2. Saiku登录源码追踪.(十三)

    Saiku登录源码追踪呀~ >>首先我们需要debug跟踪saiku登录执行的源码信息 saiku源码的debug方式上一篇博客已有说明,这里简单介绍一下 在saiku启动脚本中添加如下命 ...

  3. CAS Server集成QQ登录、新浪微博登录源码及配置文件

    转载自素文宅博客:https://blog.yoodb.com/yoodb/article/detail/1446 CAS Server集成QQ第三方登录,CAS Server集成新浪微博第三方登录以 ...

  4. 类似818tu.co微信小说分销系统设计之多公众号网页授权自动登录源码

    /** 转载请保留原地址以及版权声明,请勿恶意修改 *  作者:杨浩瑞  QQ:1420213383  独立博客:http://www.yxxrui.cn * [后台]http://xiaoshuo. ...

  5. CAS单点登录源码解析之【客户端】

    cas 3.5.3服务器搭建+spring boot集成+shiro模拟登录(不修改现有shiro认证架构).因为我们属于供应商,所以有些客户那里会需要接对方的CAS,所以没有使用shiro和cas的 ...

  6. 类似818tu.c微信小说分销系统设计之多公众号网页授权自动登录源码分享

    /** 转载请保留原地址以及版权声明,请勿恶意修改 *  作者:杨浩瑞  QQ:1420213383  独立博客:http://www.yxxrui.cn * [后台]http://xiaoshuo. ...

  7. shiro登录源码

    //1.获取SecurityManager工厂,此处使用Ini配置文件初始化SecurityManager Factory<org.apache.shiro.mgt.SecurityManage ...

  8. spring security 之自定义表单登录源码跟踪

    ​ 上一节我们跟踪了security的默认登录页的源码,可以参考这里:https://www.cnblogs.com/process-h/p/15522267.html 这节我们来看看如何自定义单表认 ...

  9. 密码登录源码(jsp+java+数据库)

    jsp界面: <%@ page language="java" contentType="text/html; charset=utf-8" pageEn ...

随机推荐

  1. MapReduce的ReduceTask任务的运行源码级分析

    MapReduce的MapTask任务的运行源码级分析 这篇文章好不容易恢复了...谢天谢地...这篇文章讲了MapTask的执行流程.咱们这一节讲解ReduceTask的执行流程.ReduceTas ...

  2. PHP 连接 MySQL

    PHP 连接 MySQL PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved) PDO (PHP Dat ...

  3. CentOS(RedHat)安装Adobe Flash Player插件 For firefox

    1. 下载离线包 http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash 如果嫌麻烦,我 ...

  4. extractor

    package scrollable.excel.reader; import java.io.IOException; import java.io.InputStream; import java ...

  5. 逻辑思维面试题-java后端面试-遁地龙卷风

    (-1)写在前面 最近参加了一次面试,对笔试题很感兴趣,就回来百度一下.通过对这些题目的思考让我想起了建模中的关联,感觉这些题如果没接触就是从0到1,考验逻辑思维的话从1到100会更好,并且编程简易模 ...

  6. Windows中explorer(图形壳)

    explorer是Windows程序管理器或者文件资源管理器. 用于管理Windows图形壳.(桌面和文件管理.) 删除该程序会导致Windows图形界面无法使用. explorer.exe进程是微软 ...

  7. ubuntu16.04下安装cuda8.0

    一.首先安装NVIDIA显卡驱动 通过NVIDIA-Linux-x86_64-367.44.run文件安装. 1. 添加 PPA. sudo add-apt-repository ppa:graphi ...

  8. python——连接Oracle数据库

    前言 Python自带的模块中有很多操纵文件的.我们可以把文件的数据读出来,经过处理还可以将数据写入文件中.但是对于数据的管理和分析来说,数据库还是专业一些.如果Python能和数据库结合在一起,那么 ...

  9. js计算地球两个经纬度之间的距离

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 解决java.io.IOException: HTTPS hostname wrong: should be

    原因:当访问HTTPS的网址.您可能已经安装了服务器证书到您的JRE的keystore .但这个错误是指服务器的名称与证书实际域名不相等.这通常发生在你使用的是非标准网上签发的证书. 解决方法:让JR ...