今天为了实现论坛自动登录发贴,作了如下尝试:
asp代码说明:
登录页面为:login.asp
要提交的表单两个:txt_user,txt_password
登录后提交的页面是:login_check.asp,该页面我的测试代码简单的只有以下:
username=trim(Request.Form("txt_user"))
response.write "username=" & username
password=trim(Request.Form("txt_password"))
response.write "password=" & password
--------------------------DELPHI代码如下(希望通过IDHTTP的POST方法实现自动登录)----------------------
procedure TForm1.Button2Click(Sender: TObject);
const
BaseURL = 'http://192.168.2.25/test/'; //论坛所在地址
UserName = 'sa'; //登录用户名
Password = '123'; //登录密码
var
Params: TStrings;
HTML: String;
MD5Pass: String;
ret:tstringstream;
begin
Params:=TStringList.Create;
ret:=TStringStream.Create('');
try
Params.Clear;
Params.add('txt_user='+UserName);
Params.Add('txt_password='+Password);
IDHttp.HandleRedirects := true;
IdHTTP.request.contenttype:='application/x-www-form-urlencoded';
IdHTTP.Request.Referer := BaseURL + 'login.asp';
IdHTTP.Post(BaseURL+'login_check.asp',Params,ret);
HTML:=ret.datastring;
Memo1.Lines.Text := HTML;
if Pos(BASEURL+cars.asp',HTML)=0 then //cars.asp是登录成功后会转向的页面
begin
ShowMessage('登录失败');
Exit;
end;
finally
Params.Free;
end;
end;
------------------
问题:按正常ASP应该是得到如下内容
username=sa
password=123
但实际遇到的问题是username=satxt_password=123
password=
不解!!!!!!为什么我传的是两个参数,但程序却把两个参数当作了一个参数是不是IDHTTP控件有BUG?
清醒一下,写篇博客再思考问题可能出在哪里。
分享到:
相关推荐
在Delphi编程环境中,IdHTTP控件是一个非常重要的组件,用于执行HTTP请求,如GET、POST等。在处理网络通信时,特别是在与Web服务器...希望这个示例能帮助你在Delphi开发过程中更好地理解和使用IdHTTP控件处理Cookie。
下面是一段使用`IdHTTP`进行POST的示例代码: ```delphi uses IdHTTP, IdTCPClient, IdBaseComponent, IdComponent; var HTTP: TIdHTTP; TCPClient: TIdTCPClient; Params: TStrings; begin // 创建并初始化...
使用IdHttp下载文件并显示下载进度条,下载进度采取windows消息通知的方式来显示
`.cfg`可能包含项目的配置信息,`.dcu`是编译后的单元文件,`.ddp`是项目文件,保存了项目设置和依赖关系,`.dfm`则是界面设计文件,记录了窗口和控件的布局。`.dll`文件(如`md5.dll`)可能包含MD5加密算法的实现,...
标题 "idhttp 使用代理访问" 暗示了这是一个关于在 Delphi 开发环境中使用 Indy HTTP 客户端组件通过代理服务器进行网络访问的主题。Indy 是一个流行的开源网络组件库,广泛用于 Delphi 和 C++Builder 开发者中,...
本篇文章将深入探讨如何利用`IDHTTP`来多次获取网页代码,并针对可能出现的问题提供解决方案。 首先,`IDHTTP`是Indy库中的一个组件,它提供了对HTTP协议的支持,允许开发者发送各种HTTP请求(如GET、POST等)并...
本文将深入探讨IDHTTP组件在POST请求中的8种使用方法,帮助开发者更好地理解和利用这个强大的工具。 1. **基本POST请求** IDHTTP组件最简单的POST请求可以通过设置其 `Method` 属性为 `htPost`,然后调用 `Execute...
本示例聚焦于Delphi7环境下使用Indy库中的IDHTTP组件实现六种不同的POST方法。IDHTTP是Indy提供的一款强大的HTTP客户端组件,它允许开发者发送各种HTTP请求,包括GET、POST等。 首先,我们来详细解释POST方法。POST...
3. **读取和检查Cookies**:可以使用`CookieManager`的`Cookies`属性访问已存储的Cookies。这返回一个`TIdCookieCollection`,你可以遍历这个集合以查看或修改Cookies。 ```delphi for Cookie in IdHTTP.Cookie...
1. **IDHTTP组件的使用**:IDHTTP组件是Delphi Indy库中的核心组件之一,用于发起HTTP请求。通过设置其属性,如Host(目标服务器地址)、Port(端口号)、Request.Method(HTTP方法,如GET或POST)等,可以定制HTTP...
标题中的“Idhttp SSL 网站”指的是在Delphi编程环境中使用Indy库的IDHTTP组件进行HTTPS(SSL/TLS)通信时遇到的问题。IDHTTP是Delphi中用于发送HTTP请求的组件,而SSL(Secure Socket Layer)或其升级版TLS...
### Delphi Xe10 使用 IdHTTP GET 新浪股票 API #### 概述 本篇文章主要介绍了如何在 Delphi Xe10 开发环境中利用 Indy 库中的 `TIdHTTP` 控件发起 HTTP GET 请求来获取新浪股票 API 接口的数据。通过这种方式,...
这个实例主要探讨如何使用`TIdHTTP`控件处理Cookies,这对于开发需要与服务器进行交互,尤其是涉及到用户登录状态保持的应用至关重要。在Web应用开发中,Cookies通常被用来存储用户会话信息,如登录状态、个性化设置...
下面将详细解释如何使用Delphi的IDHTTP组件进行循环POST操作。 首先,我们需要了解IDHTTP组件的基本用法。在Delphi中,打开一个新的VCL Forms应用程序,然后从Tool Palette的Internet类别中拖一个IDHTTP组件到Form...
利用idhttp进行多线程下载,带进度条显示,可以暂停下载和继续下载,未使用第三方控件,在delphi xe7下测试通过。 昨天发的代码发现一个bug,就是无论几线程,都是从文件首部开始下载,才发现xe7下idhhtp控件的...
在使用过程中,你可能还会遇到SSL/TLS版本不兼容或证书验证问题。这时,你可能需要调整`IDHTTP`的`SSLOptions`属性,比如设置`SSLOptions.SSLVersions`接受特定的SSL/TLS版本,或设置`SSLOptions.VerifyMode`和`...
在IT行业中,Delphi是一种流行的面向对象的编程环境,它基于Pascal语言并以其强大的Windows应用程序开发能力而闻名。...了解和熟练掌握IdHTTP控件的使用,对于进行网络通信的Delphi应用开发至关重要。
更高级的使用场景,比如设置自定义认证、处理Cookie、代理设置等,也可以通过IdHTTP的Request和Response属性实现。例如,设置HTTP基本认证: ```delphi IdHTTP.Request.BasicAuthentication := True; IdHTTP.Request...
在使用IDHTTP组件进行SSL连接时,如果系统缺少这些DLL文件,程序可能无法正确识别和使用SSL/TLS,从而导致错误或连接失败。将这两个文件添加到系统的路径或者应用程序的运行目录下,可以确保IDHTTP在尝试建立SSL连接...
本教程将详细阐述IDHTTP组件进行POST请求的8种不同方法,每种方法都有其特定的用途和适用场景。下面,我们将逐一介绍这些方法,并提供源码示例。 1. **基本POST请求** 最简单的POST请求可以通过设置IDHTTP的...