首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >登录到twitch.tv

登录到twitch.tv
EN

Stack Overflow用户
提问于 2015-07-19 17:33:14
回答 1查看 668关注 0票数 0

我正在尝试登录这个网站,花了一些时间,但没有成功(下载http://www.twitch.tv/settings看起来没有登录的用户)。

我使用的是Delphi XE 8(更新1)和最新的SSL文件。当前代码如下所示(真实用户和密码):

代码语言:javascript
复制
var
  IdHTTP: TIdHTTP;
  IdSSL: TIdSSLIOHandlerSocketOpenSSL;
  HTML: string;
  para: TStringList;
  start, ends: integer;
  stream: TMemoryStream;
  state, nonce: string;
begin
    IdHTTP := TIdHTTP.Create;
    para := TStringList.Create;
    stream := TMemoryStream.Create;
    try
      IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP);
      IdHTTP.IOHandler := IdSSL;
      IdHTTP.AllowCookies := True;
      IdHTTP.CookieManager := Form1.IdCookieManager1;
      Form1.IdCookieManager1.CookieCollection.Clear;
      IdHTTP.HandleRedirects := True;
      HTML := IdHTTP.Get('http://www.twitch.tv/login');
      start := Pos('<input type="hidden" name="state" value="', HTML) + Length('<input type="hidden" name="state" value="');
      ends := PosEx('"', HTML, start);
      state := copy(HTML, start, ends - start);
      start := Pos('<input type="hidden" name="nonce" value="', HTML) + Length('<input type="hidden" name="nonce" value="');
      ends := PosEx('"', HTML, start);
      nonce := copy(HTML, start, ends - start);
      para.Add('scope=openid');
      para.Add('client_id=36926892495301a63b2e9350a38d3d6dbf72ad81e571a3ebba4687250ec8f352c70b3e91229602f73e1335528f3caa00a5cf513f484d7003784e722f2ce7a216');
      para.Add('redirect_uri=https://secure.twitch.tv/passport/callback');
      para.Add('response_type=code');
      para.Add('state=' + state);
      para.Add('nonce=' + nonce);
      para.Add('login=1a64');
      para.Add('password=1a641a641a64');
      try
        IdHTTP.Post(' https://passport.twitch.tv/authorize', para, stream, IndyTextEncoding_UTF8());
      except
      end;
      try
        Form1.Memo1.text := para.text;
        HTML := IdHTTP.Get('http://www.twitch.tv/settings');
      except
      end;
      showmessage(HTML);
    finally
      IdHTTP.Free;
      para.Free;
      stream.Free;
    end;
end;
EN

回答 1

Stack Overflow用户

发布于 2015-07-24 22:59:28

问题与空间IdHTTP.Post(' https://passport.twitch.tv/authorize', para, stream, IndyTextEncoding_UTF8()有关);

应为IdHTTP.Post('https://passport.twitch.tv/authorize', para, stream, IndyTextEncoding_UTF8());

一切都很好

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31499807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档