indy post 返回中文编码_delphi xe10 indy 表单post 方法, utf8编码

该博客详细介绍了如何在Delphi XE10中利用Indy库进行HTTP POST请求,同时解决中文编码可能导致的乱码问题。通过创建TIdHTTP对象,设置合适的Content-Type,以及使用TIdMultiPartFormDataStream处理参数,确保了UTF-8编码的正确应用,从而避免了中文乱码现象。
摘要由CSDN通过智能技术生成

// 亲测 不会乱码

var

CuId,ModelId,sid : Integer;

lmsg : string;

Idc: TIdHTTP;

Ptxt : string;

postJson,jo :ISuperObject;

rst : Boolean;

lmfd: TIdMultiPartFormDataStream;

responseStream: TStringStream;

begin

Result := False;

try

lmfd := TIdMultiPartFormDataStream.Create;

responseStream := TStringStream.Create();

lmfd.AddFormField('cuid',vcuid,'UTF-8').ContentTransfer := '8bit' ;

lmfd.AddFormField('type',vtype,'UTF-8').ContentTransfer := '8bit';

Idc := TIdHTTP.Create(nil);

Idc.ReadTimeout := 60000;

Idc.ConnectTimeout := 60000;

// Idc.Request.ContentType := 'application/json';

Idc.Request.ContentType := 'application/x-www-form-urlencoded';

Ptxt := '';

try

try

idc.Post(gqrurl,lmfd,responseStream);

ptxt := responseStream.DataString;

if ptxt <> '' then

begin

jo := so(ptxt);

rst := jo.B['status'];

if rst then

begin

Result := True;

vmsg := jo.S['data'];

end;

end;

except

on e: exception do

begin

vmsg := e.Message;

end;

end;

finally

Idc.Free;

end;

FreeAndNil(responseStream);

FreeAndNil(lmfd);

except

on e: exception do

begin

if responseStream <> nil then FreeAndNil(responseStream);

if lmfd <> nil then FreeAndNil(lmfd);

end;

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值