UserAgent: string;
Header: string;
cb: DWORD;
- Delim: Integer;
+ Index: DWORD;
+// Delim: Integer;
body: string;
begin
FSession := TBelibSession.Create;
if not Assigned(hRequest) then
MakeError(FSession, GetLastError())
else begin
- UserInfo := Format('m=%s&p=%s&submit=%s', [HttpEncode(ID), HttpEncode(Pass), HttpEncode(SJIStoEUC('\93o\98^'))]);
+ UserInfo := Format('m=%s&p=%s', [HttpEncode(ID), HttpEncode(Pass)]);
Header := 'Content-Type: application/x-www-form-urlencoded'#13#10;
UserAgent := Format('%s %s', [BELIB_2CH_UA, ClientUA]) + #13#10;
Header := Header + UserAgent;
if not HttpSendRequest(hRequest, PChar(Header), DWORD(-1), PChar(UserInfo), Length(UserInfo)) then
MakeError(FSession, GetLastError())
else begin
- if not InternetReadFile(hRequest, @Buf, SizeOf(Buf), cb) then
- MakeError(FSession, GetLastError())
- else if (Pos('cookie', Buf) = 0) or (Pos('"DMDM=', Buf) = 0)
- or (Pos('"MDMD=', Buf) = 0) then
- MakeError(FSession, ERROR_INVALID_DATA)
+ cb := Sizeof(Buf);
+ Index := 0;
+ ZeroMemory(@Buf, cb);
+ if not HttpQueryInfo(hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, @Buf, cb, Index) then
+ MakeError(FSession, GetLastError())
+ else if (Pos('Set-Cookie:', Buf) = 0) or (Pos('DMDM=', Buf) = 0)
+ or (Pos('MDMD=', Buf) = 0) then begin
+ MakeError(FSession, ERROR_INVALID_DATA);
+ end
else begin
body := Buf;
- FSession.FDMDM := Copy(body, Pos('"DMDM=', body) + 6, Length(body));
+ FSession.FDMDM := Copy(body, Pos('DMDM=', body) + 5, Length(body));
FSession.FDMDM := Copy(FSession.FDMDM, 1, Pos(';', FSession.FDMDM) - 1);
- FSession.FMDMD := Copy(body, Pos('"MDMD=', body) + 6, Length(body));
+ FSession.FMDMD := Copy(body, Pos('MDMD=', body) + 5, Length(body));
FSession.FMDMD := Copy(FSession.FMDMD, 1, Pos(';', FSession.FMDMD) - 1);
end;
end;