delphi HTTP/HTTPS协议通信 关于 postman

springworker 2018-08-27 02:43:47


上两个是postman的,我在delphi中怎么调用
...全文
1087 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdonghai 2018-08-30
  • 打赏
  • 举报
回复
用idhttp这个控件来post的话,老是出错,换wininet函数来弄就很正常.
参考了https://blog.csdn.net/michaeljscofield/article/details/8798803

uses WinInet;

function WebPagePost(sURL,sPostData,sHeader:string):string;
const
RequestMethod = 'POST';
HTTP_VERSION = 'HTTP/1.1'; //HTTP版本 我抓包看过 HTTP/1.0 HTTP/1.1。
var
dwSize:DWORD;
SS:TStringStream;
dwBytesRead:DWORD;
hInte,hConnection,hRequest:HInternet;
ContentSize:array[1..1024] of Char;
HostPort:Integer;
HostName,FileName:String;
procedure ParseURL(URL: string;var HostName,FileName:string;var HostPort:Integer);
var
i,p,k: Integer;
function StrToIntDef(const S: string; Default: Integer): Integer;
var
E: Integer;
begin
Val(S, Result, E);
if E <> 0 then Result := Default;
end;
begin
if lstrcmpi('http://',PChar(Copy(URL,1,7))) = 0 then System.Delete(URL, 1, 7);
HostName := URL;
FileName := '/';
HostPort := INTERNET_DEFAULT_HTTP_PORT;
i := Pos('/', URL);
if i <> 0 then
begin
HostName := Copy(URL, 1, i-1);
FileName := Copy(URL, i, Length(URL) - i + 1);
end;
p:=pos(':',HostName);
if p <> 0 then
begin
k:=Length(HostName)-p;
HostPort:=StrToIntDef(Copy(HostName,p+1,k),INTERNET_DEFAULT_HTTP_PORT);
Delete(HostName,p,k+1);
end;
end;
begin
Result := '';
ParseURL(sURL,HostName,FileName,HostPort);
hInte := InternetOpen('', //UserAgent
INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0);
if hInte<>nil then
begin
hConnection := InternetConnect(hInte,
PChar(HostName),
HostPort,
nil,
nil,
INTERNET_SERVICE_HTTP,
0,
0);
if hConnection<>nil then
begin
hRequest := HttpOpenRequest(hConnection,
PChar(RequestMethod),
PChar(FileName),
HTTP_VERSION,
'', //Referrer 来路
nil,//AcceptTypes 接受的文件类型 TEXT/HTML */*
INTERNET_FLAG_NO_CACHE_WRITE or
INTERNET_FLAG_RELOAD,
0);
if hRequest<>nil then
begin
HttpAddRequestHeaders(hRequest,PChar(sHeader),
Length(sHeader),
HTTP_ADDREQ_FLAG_ADD or HTTP_ADDREQ_FLAG_REPLACE);
if HttpSendRequest(hRequest,nil,0,PChar(sPostData),Length(sPostData)) then
begin
SS:=TStringStream.Create('');
try
dwBytesRead:=1;
dwSize:=sizeof(ContentSize);
while dwBytesRead>0 do
begin
InternetReadFile(hRequest,@ContentSize,dwsize,dwBytesRead);
SS.WriteBuffer(ContentSize,dwBytesRead);
end;
SetLength(result,SS.size);
SS.Position:=0;
SS.ReadBuffer(result[1],SS.Size);
finally
SS.Free;
end;
end;
end;
InternetCloseHandle(hRequest);
end;
InternetCloseHandle(hConnection);
end;
InternetCloseHandle(hInte);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
sHeader:string;
begin
sHeader:='Content-Type: text/plain'+#13#10+
'msg-Type: GetUserInfoByMeterAdd'+#13#10+
'AppKey: abc';
memo1.Text:=WebPagePost('http://153.35.190.198:15578','39060017110803',sHeader);
end;
wdonghai 2018-08-28
  • 打赏
  • 举报
回复
要是报错的话就一直按,按到有返回结果为止.

procedure TForm1.Button1Click(Sender: TObject);
var
RequestList : TStringList;
begin
IdHTTP1.Request.CustomHeaders.Clear;
IdHTTP1.Request.CustomHeaders.Values['msg-Type']:='GetUserInfoByMeterAdd';
IdHTTP1.Request.CustomHeaders.Values['AppKey']:='abc';
IdHTTP1.Request.ContentType:='text/plain';

RequestList := TStringList.Create;
RequestList.Add('39060017110803');
try
memo1.text:=IdHTTP1.Post('http://153.35.190.198:15578',RequestList);
except
on e:exception do
showmessage(e.Message);
end;
end;
内容概要:LTK8319是一款单通道H桥有刷直流电机驱动器,工作电压范围为2.5V至12V,支持最高3.9A的峰值电流和2.5A的平均电流驱动能力,适用于小家电、玩具、电子锁、机器人等小型电动设备。该芯片通过两个逻辑输入(INA和INB)控制电机的正转、反转、停止与刹车,并支持PWM调速控制。集成欠压锁定(UVLO)、过温保护(TSD)及自动故障恢复功能,确保系统安全可靠运行。当INA和INB持续为低电平时,芯片进入低功耗休眠模式,显著降低静态功耗。采用ESOP-8封装,符合环保无铅标准。; 适合人群:电子工程师、嵌入式系统开发者、电机控制技术人员,以及从事小型机电产品研发的设计人员;具备基本电路知识和电机控制经验者更佳。; 使用场景及目标:①用于驱动小型有刷直流电机或步进电机的一个绕组,实现精确的方向与速度控制;②适用于电池供电设备中对功耗敏感的应用,利用休眠模式延长续航时间;③在电机启停频繁、负载波动大的场合,发挥其电流控制与保护机制优势,提升系统稳定性。; 阅读建议:此文档提供了详细的电气特性、功能逻辑表、保护机制与时序参数,建议结合典型应用电路进行硬件设计,并重点关注电源去耦电容选型、散热布局及PWM频率设置(不超过100kHz),以确保系统可靠运行。
内容概要:本文研究了一种基于遗传算法(GA)与粒子群优化算法(PSO)融合的无人机三维路径规划方法,旨在解决复杂环境中无人机避障与路径优化的问题。通过构建三维空间环境模型,提出一种结合GA全局搜索能力强与PSO收敛速度快优势的混合优化策略,并利用Matlab平台完成算法仿真与路径可视化。研究不仅实现了无人机在存在多个障碍物场景下的安全、高效飞行路径规划,还对GA与PSO两种算法在路径长度、计算耗时、收敛稳定性等方面进行了对比分析,评估其性能差异,为实际应用中算法选型提供依据。; 适合人群:具备一定算法设计基础和Matlab编程能力的科研人员、自动化与人工智能方向的研究生,以及从事无人机导航、智能控制等相关领域的工程技术人员。; 使用场景及目标:①应用于城市密集建筑区、山地森林等复杂地形中的无人机自主巡检与应急救援任务;②为智能交通、地理测绘、灾害监测等需要自主路径决策的无人系统提供算法支持与仿真验证;③通过对比不同智能优化算法的表现,辅助研究人员在特定应用场景下选择最优路径规划方案。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实验,调整种群规模、迭代次数、障碍物分布等参数,深入理解算法运行机制与性能表现,并可进一步拓展至动态环境更新、多无人机协同避障等更复杂的研究方向。

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧