如何共享联盟cookie
既然我们获取到了cookie, 如果有多个程序都要使用到联盟帐号的时候, 如果不共享cookie, 那么每个程序都需要登录一次, 真的很浪费资源.
如何共享呢, 那就是建立一个http的服务, 提供http的接口.
如代码所示:
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, diocp.ex.httpServer, ExtCtrls, ShellAPI; type
TFrmMain = class(TForm)
Button1: TButton;
Edit1: TEdit;
mmo1: TMemo;
pnl1: TPanel;
btn1: TButton;
tmr1: TTimer;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure tmr1Timer(Sender: TObject);
private
{ Private declarations }
FTcpServer: TDiocpHttpServer;
procedure OnHttpSvrRequest(pvRequest:TDiocpHttpRequest);
procedure StartLogin();
function AtractProcess(sExe: string): Boolean;
public
{ Public declarations }
end; var
FrmMain: TFrmMain; implementation
uses uFMMonitor, diocp.core.engine; {$R *.dfm}procedure TFrmMain.Button1Click(Sender: TObject);
var
MOduleHandle:THandle;
TmpWndHandle:THandle;
aa:PChar;
begin
TmpWndHandle:=;
aa:=PChar(Edit1.Text);
TmpWndHandle:=FindWindowA(nil,aa);
if not IsWindow(TmpWndHandle) then
begin
mmo1.Lines.Add('没有找到窗口');
Exit;
end;
if InstallHook(FindWindowA(nil,aa)) then
mmo1.Lines.Add('挂载成功')
end; procedure TFrmMain.FormDestroy(Sender: TObject);
begin
UnHook;
end; procedure TFrmMain.OnHttpSvrRequest(pvRequest: TDiocpHttpRequest);
var
FLoad: TStringList;
begin
try
pvRequest.Response.ContentType := 'text/html; charset=utf-8';
pvRequest.DecodePostDataParam(false);
pvRequest.DecodeURLParam(false);
if pvRequest.RequestURI = '/GetCookie' then
begin
FLoad := TStringList.Create;
if FileExists(ExtractFilePath(ParamStr())+'cook.txt') then
FLoad.LoadFromFile(ExtractFilePath(ParamStr())+'cook.txt');
pvRequest.Response.WriteString(FLoad.Text);
FreeAndNil(FLoad);
end else
pvRequest.Response.WriteString('未知命令');
finally
pvRequest.ResponseEnd;
pvRequest.CloseContext;
end;
end; procedure TFrmMain.FormCreate(Sender: TObject);
begin
FTcpServer := TDiocpHttpServer.Create(Self);
FTcpServer.Name := 'HttpSVR';
FTcpServer.SetMaxSendingQueueSize();
FTcpServer.createDataMonitor;
FTcpServer.OnDiocpHttpRequest := OnHttpSvrRequest;
TFMMonitor.createAsChild(pnl1, FTcpServer);
FTcpServer.Port := ;
FTcpServer.Active := True;
end; procedure TFrmMain.StartLogin;
var
scmd, sPath: string;
begin
sCmd := '-lt 1 -ac -ap -dc -dp -pn AL6362845535841316741047753041';
sPath := ExtractFilePath(ParamStr());
ShellExecute(, 'open', PChar(sPath+'AliLogin.exe'), PChar(sCmd), nil, SW_SHOWNORMAL); tmr1.Enabled := True;
end; procedure TFrmMain.btn1Click(Sender: TObject);
begin
StartLogin();
end; function TFrmMain.AtractProcess(sExe: string): Boolean;
var
MOduleHandle:THandle;
TmpWndHandle:THandle;
aa:PChar;
begin
Result := False;
TmpWndHandle:=;
aa:=PChar(sExe);
TmpWndHandle:=FindWindowA(nil,aa);
if not IsWindow(TmpWndHandle) then
begin
mmo1.Lines.Add('没有找到窗口');
Exit;
end;
if InstallHook(FindWindowA(nil,aa)) then
begin
mmo1.Lines.Add('挂载成功');
Result := True;
end;
end; procedure TFrmMain.tmr1Timer(Sender: TObject);
begin
if AtractProcess('阿里妈妈登录窗体') then
tmr1.Enabled := False;
end; end.
我们把注入获取的cookie保存在cook.txt文件中, 当服务器开启后, 调用接口 http://服务器IP:9091/GetCookie?

在这个http服务中, 使用的是开源的diocp, 使用起来很简单.
下节预告 如何获取单品优惠券
如何共享联盟cookie的更多相关文章
- 黄聪:Wordpress二级域名共享用户cookie出现错误解决方案及WP的Cookie机制
在若干年以前,我刚开始折腾Wordpress没多久的时候,就自己摸索过 多个Wordpress网站共享一份数据表的实现方法 .这种看起来好像很高大上的类SSO功能,能够给用户在多个网站之间提供快速.无 ...
- [php-cookie] cookie 请求跨域,如何共享
cookie 请求跨域的问题, 假设我有两个域名,一个 m.example.com,另一个是 www.example.com . 那么我需要如何设置 cookie 才可以在这两个域名都实现共享呢? / ...
- cookie,Session机制的本质,跨应用程序的session共享
目录:一.术语session二.HTTP协议与状态保持三.理解cookie机制四.理解session机制五.理解javax.servlet.http.HttpSession六.HttpSession常 ...
- 跨域共享cookie和跨域共享session
转载自:http://blog.csdn.net/ahhsxy/article/details/7356128 这里所说的跨域,是指跨二级域名,而且这些域名对应的应用都在同一个app上, 比如我有以下 ...
- Javascript中关于cookie的那些事儿
Javascript-cookie 什么是cookie? 指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).简单点来说就是:浏览器缓存. cookie由什 ...
- session & cookie(li)
Session & Cookie 一.定义 Session,用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间.Cookie,由服务器端生成,发送 ...
- HTTP Session、Cookie机制详解
一.什么是http session,有什么用 HTTP协议本身是无状态的,本身并不能支持服务端保存客户端的状态信息,于是,Web Server中引入了session的概念,用来保存客户端的状态信息. ...
- ASP.NET Cookie(二)--控制Cookie的范围
默认情况下,一个站点的全部Cookie都一起存储在客户端上,而且所有Cookie都会随着对该站点发送的任何请求一起发送到服务器.也就是说,一个站点中的每个页面都能获得该站点的所有Cookie.但是,可 ...
- jsp 入门 cookie session
Java Server Page ==> 服务器端的动态页面资源.用来做显示的功能. JSP构成 ==> HTML 脚本代码 标签构成. JSP 原理 ==> 实际上就是 servl ...
随机推荐
- 【Codeforces】【图论】【数量】【哈密顿路径】Fake bullions (CodeForces - 804F)
题意 有n个黑帮(gang),每个黑帮有siz[i]个人,黑帮与黑帮之间有有向边,并形成了一个竞赛完全图(即去除方向后正好为一个无向完全图).在很多年前,有一些人参与了一次大型抢劫,参与抢劫的人都获得 ...
- HDU 3949 XOR [线性基|高斯消元]
目录 题目链接 题解 代码 题目链接 HDU 3949 XOR 题解 hdu3949XOR 搞死消元找到一组线性无关组 消出对角矩阵后 对于k二进制拆分 对于每列只有有一个1的,显然可以用k的二进制数 ...
- Egret的Shape
class ShapeTest extends egret.DisplayObjectContainer { public constructor() { super(); this.addEvent ...
- __x__(36)0908第五天__背景 background
1. 背景 background: red url(img/cat.gif) repeat-x fixed; 2. 背景颜色 background-color: red; 3. 背景图片 backgr ...
- 11_ for 练习 _ Math.sqrt
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- react_app 项目开发 (5)_前后端分离_后台管理系统_开始
项目描述 技术选型 react API 接口 接口文档,url,请求方式,参数类型, 根据文档描述的方法,进行 postman 测试,看是否能够得到理想的结果 collections - 创建文件取项 ...
- 关于Android的fragment的使用
fragment的静态使用 首先创建两个fragment,就把fragment当成activity去写布局,第一个是fragment_title: <LinearLayout xmlns:and ...
- 一种JNI混淆方案
转载自:http://www.liuling123.com/2016/06/so_method_mix.html 感谢原作者 侵删 默认情况下,使用JNI时与native对应的JNI函数名都是Java ...
- MySQL Server8.0版本时出现Client does not support authentication protocol requested by server
MySQL Server8.0版本时出现Client does not support authentication protocol requested by server 解决方法: 1.roo ...
- Redis多机多节点集群实验
第一步:环境准备 我们搞两台虚拟机 局域网IP 分别是 192.168.1.109和192.168.1.110 我们约定把192.168.1.109作为集群控制端,需要安装redis-trib.rb ...