关于delphi中idhttp网页提交的方法?

2010-03-05 10:13yncg2046 | 浏览 3698 次
这是一个申请key的页面:https://license.avira.com/en/promotion-hylm9fbv7chaxs8zbl83?id=JVgkM1BNUn

我想要用idhttp.post方法进行自动提交,如下
procedure TForm1.Button1Click(Sender: TObject);
var
sPost, shtml: TStringlist;
sData: TMemoryStream;
begin
sPost := TStringlist.Create;
sData := TMemoryStream.Create;
try
sPost.Add('customerSalutationId=MR');
sPost.Add('customerFirstname=sdjl');
sPost.Add('customerLastname=sfjljkio');
sPost.Add('customerEmail=sdfsdfjoj@qq.com');
sPost.Add('customerCountryId=Italy');
IdHTTP1.Post('https://license.avira.com//en/promotion-hylm9fbv7chaxs8zbl83?id=Y8on000002',
sPost, sData);
except
ShowMessage('error');
sPost.Free;
sData.Free;
end;
sPost.Free;
sData.Free;
end; 但是点击button后出现"无效指针操作"的错误提示,请问问题出现在哪里了,另外提交后返回的应该是一个浏览授权文件的页面,请问应该如何接收这个页面?
分享到:

 
2010-03-05 14:01

 

提问者采纳

 
function GetString(tStr,sStr,eStr :string):string;
var
sPos,ePos :integer;
begin
Result := '';
sPos := Pos(sStr,tStr);
if sPos > 0 then
begin
tStr := Copy(tStr,sPos+Length(sStr),Length(tStr)-sPos-Length(sStr)+1);
ePos := Pos(eStr,tStr);
if ePos > 0 then
Result := Copy(tStr,1,ePos-1);
end;
end; procedure TForm1.Button1Click(Sender: TObject);
var
sl :TStringList;
s :string;
begin
s := Utf8ToAnsi(IdHTTP1.Get('https://license.avira.com/en/promotion-hylm9fbv7chaxs8zbl83'));
s := GetString(s,'

');

  sl := TStringList.Create;
try
sl.Add('customerSalutationId=MR_');
sl.Add('customerFirstname=sdjl');
sl.Add('customerLastname=sfjljkio');
sl.Add('customerEmail=sdfsdfjoj@qq.com');
sl.Add('customerCountryId=CN');
sl.Add('buttonActivate=Request license now');
s := Utf8ToAnsi(IdHTTP1.Post('https://license.avira.com/'+s,sl));
if Pos(UpperCase('A license file has been already generated for this email address'),UpperCase(s)) > 0 then
ShowMessage('该邮箱已经使用')
else
begin
s := GetString(s,'License Overview');
s := Utf8ToAnsi(IdHTTP1.Get('https://license.avira.com/en/'+s));
ShowMessage('License No.: ' + GetString(s,'License No.: ',' '));
end;
finally
FreeAndNil(sl);
end;
end;
提问者评价
多谢大哥!
评论 | 7 0

cb120520025 | 九级 采纳率57%

擅长: 其他编程语言

为您推荐:

等待您来回答

知道日报

2015.08.12往期回顾

713
 
 
登录

还没有百度账号?立即注册

 
 
 

 

 
 

学习indy组件之一idhttp的使用方法的更多相关文章

  1. [ExtJS5学习笔记]第七节 Extjs5的组件components及其模板事件方法学习

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/38487519 本文作者:sushengmiyan ------------------ ...

  2. Hadoop YARN学习之组件功能简述(3)

    Hadoop YARN学习之组件功能简述(3) 1. YARN的三大组件功能简述: ResourceManager(RM)是集群的资源的仲裁者, 它有两部分:一个可插拔的调度器和一个Applicati ...

  3. Vue学习之组件切换及父子组件小结(八)

    一.组件切换: 1.v-if与v-else方式: <!DOCTYPE html> <html lang="en"> <head> <met ...

  4. Jetpack Compose学习(5)——从登录页美化开始学习布局组件使用

    原文:Jetpack Compose学习(5)--从登录页美化开始学习布局组件使用 | Stars-One的杂货小窝 本篇主要讲解常用的布局,会与原生Android的布局控件进行对比说明,请确保了解A ...

  5. 八、Android学习第七天——XML文件解析方法(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...

  6. C#学习笔记(八):扩展方法

    还记得第一次使用DOTween时,发现缓动方法竟然是可以直接用Transform对象中调用到,当时就被震撼到了(那是还是C#小白一只).好了不多说了,今天来学习一下C#的这个特性——扩展方法. 扩展方 ...

  7. Linux下查看内核、CPU、内存及各组件版本的命令和方法

    Linux下查看内核.CPU.内存及各组件版本的命令和方法 Linux查看内核版本: uname -a                        more /etc/*release       ...

  8. AspUpload组件的安装及使用方法介绍

    http://soft.huweishen.com/soft/47.html AspUpload对ASP编程人员来说要实现ASP网站文件上传功能它是首选.本文就为大家介绍一下AspUpload组件的安 ...

  9. VS2008安装“Visual Studio Web 创作组件”安装失败的解决方法

    VS2008安装“Visual Studio Web 创作组件”安装失败的解决方法 今天在单位电脑安装VS2008,当安装到“Visual Studio Web 创作组件”时出现错误. 准备手动安装 ...

随机推荐

  1. Sublime Text 3 简体中文汉化包

    Sublime Text 3下载 不用说是上官方下载地址:http://www.sublimetext.com/3 Sublime Text 3 简体中文汉化包使用方法 1.将上面要求下载的subli ...

  2. markdown 语法测试

    understanding the linux kernel 绪论 linux支持.硬件依赖.版本 基于微内核的方法 支持内核线程 多线程应用支持 抢占式内核 硬件依耐性 file descripto ...

  3. nohup使用(转)

    在启动weblogic的时候我们经常看到如下的命令: nohup ./startWebLogic.sh >out.log 2>&1 & 其中 0.1.2分别代表如下含义:  ...

  4. SQL增删改语句常用

    创建table: create table tab_name( col1 type; 约束:主键-外键-非空-检查-唯一 col2 type; ); 删除表 : drop table tab_name ...

  5. LeetCode-Search in Rotated Sorted Array

    Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...

  6. html5 EvnetSource 与 JSP页面结合使用

    最近一直在研究前端的技术,特别是html5的技术,本人觉得html5的发展将越来越好,废话少说.看到了EventSource,根据官方的说法是服务器向客户端的推送服务.自己想找一些例子看看,发现都是P ...

  7. python运算符重载

    python运算符重载就是在解释器使用对象内置操作前,拦截该操作,使用自己写的重载方法. 重载方法:__init__为构造函数,__sub__为减法表达式 class Number: def __in ...

  8. mvc路由,mvc区域

    1.路由在进行匹配时,会默认匹配第一个路由信息 2.路由规则的{control}和{action}时不能改变的 3.路由规则可以中间字符可以随便定义,但是{control}和{action}必须使用一 ...

  9. rabbitmq, windows/linux, c/c++/node.js/golang/dotnet

    官网:http://www.rabbitmq.com/ zeromq 相当于 message backbone,而rabbitmq相当于message broker.有的应用系统中,二者并存. (1) ...

  10. oracle数据库从入门到精通之四

    序列是oracle中较为重要的概念事务对于ddl是不起作用的查询,更新,数据表,约束这些个概念要掌握.在许多数据库之中都会存在一种数据类型--自动增长列,它能够创建流水号12c之前并没有提供这样一个自 ...