对接电子发票时采用http post传输,参数是xml类型的,返回的结果总是乱码,耗费了大半天的时间终于解决
方法一:
rlt:=sIdHttp.post(‘http://kk.bwfapiao.com/connect/oauth2/info/xml/accessToken.jspx’,RequestList,IndyTextEncoding(TEncoding.UTF8));
最后一个参数进行编码转化,经测试不好用
方法二:
reqstream,respstream: TStringStream;
reqstream := TStringStream.Create(requestlist.Text);
respstream := tstringstream.Create(’’,65001);
reqstream.Position := 0;//将流位置置为0
sIdHttp.post(‘http://kk.bwfapiao.com/connect/oauth2/info/xml/accessToken.jspx’,reqstream,respstream);
传入参数与传出参数均使用流的方式
rlt := respstream.DataString;
此种方式显示出来的汉字为正常汉字,不需要再次进行转换
delphi10版本http请求返回乱码
最新推荐文章于 2024-08-14 09:59:27 发布