Delphi中IdHttp调用接口,返回值乱码
--------开发环境是Delphi XE10--------
这里要说的是BUG问题,
var
respStream : TStringStream; respStream.DataString有问题,中文部分乱码!
解决方法也在代码当中
----------------------------
1 unit u_Main;
2
3 interface
4
5 uses
6 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
7 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.Menus, Vcl.StdCtrls,
8 IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdMultipartFormData;
9
10 type
11 TFrmMain = class(TForm)
12 PageControl1: TPageControl;
13 tabsMESPacking: TTabSheet;
14 IdHTTP1: TIdHTTP;
15 Edit1: TEdit;
16 Button1: TButton;
17 Memo1: TMemo;
18 Edit2: TEdit;
19 procedure Button1Click(Sender: TObject);
20 private
21 { Private declarations }
22 public
23 { Public declarations }
24 end;
25
26 var
27 FrmMain: TFrmMain;
28
29 implementation
30
31 {$R *.dfm}
32 function StreamToString(mStream : TStream) : AnsiString;
33 var
34 I : Integer;
35 begin
36 Result := '';
37 if not Assigned(mStream) then Exit;
38 SetLength(Result , mStream.Size);
39 for I := 0 to Pred(mStream.Size) do
40 try
41 mStream.Position := I;
42 mStream.Read(Result[Succ(I)] , 1);
43 except
44 Result := '';
45 end;
46 end;
47
48 procedure TFrmMain.Button1Click(Sender: TObject);
49 var
50 postStream,respStream : TStringStream;
51 ss,aa:string;
52 vstream:TMemoryStream;
53 begin
54 postStream := TStringStream.Create(Memo1.Text);
55 respStream:=TStringStream.Create('');
56 vstream:=TMemoryStream.Create;
57 IdHTTP1.Request.CharSet:='utf-8';
58 IdHTTP1.Request.ContentType := 'application/json';
59 IdHTTP1.Post(Edit1.Text,postStream,respStream);
60 ss:=respStream.DataString;
61
62 respStream.SaveToStream(vstream);
63 aa:=UTF8ToString(StreamToString(vstream));
64 Edit2.Text:=aa;
65 end;
66
67 end.
Delphi中IdHttp调用接口,返回值乱码的更多相关文章
- 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用枚举?
在阅读<阿里巴巴Java开发手册>时,发现有一条关于二方库依赖中接口返回值不允许使用枚举类型的规约,具体内容如下: 在谈论为什么之前先来科普下什么是二方库,二方库也称作二方包,一般指公司内 ...
- nginx访问日志中添加接口返回值
因为nginx作为web服务器时,会代理后端的一些接口,这时访问日志中只能记录访问接口的status码,也就是说,只能获得200.404 这些的值 那么如何获得接口返回的response值呢? 下面开 ...
- asp+vb.net解决调接口返回中文乱码问题
1.问题描述 涉及语言:vb,vbscript,vb.net,asp 最近在工作中碰到了这样一个问题:需要调用一个接口解析简历文件中的关键信息.直接用postman测试该接口,接口返回值没问题,但一旦 ...
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...
- (转载)delphi 中如何调用sql 存储过程
delphi 中如何调用sql 存储过程 使用TADOStoredProc组件,可以,给你举个例子好了 with ADOStoredProc1 do begin Close; Parameters.C ...
- WebApi 接口返回值类型详解 ( 转 )
使用过Webapi的园友应该都知道,Webapi的接口返回值主要有四种类型 void无返回值 IHttpActionResult HttpResponseMessage 自定义类型 此篇就围绕这四块分 ...
- WebApi接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.作为程序猿,我们都知道参数和返回值是编程领域不可分割的两大块,此前分享了 ...
- WebApi 接口返回值不困惑:返回值类型详解。IHttpActionResult、void、HttpResponseMessage、自定义类型
首先声明,我还没有这么强大的功底,只是感觉博主写的很好,就做了一个复制,请别因为这个鄙视我,博主网址:http://www.cnblogs.com/landeanfen/p/5501487.html ...
- (转)C# WebApi 接口返回值不困惑:返回值类型详解
原文地址:http://www.cnblogs.com/landeanfen/p/5501487.html 正文 前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi ...
- [转]C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
本文转自:http://www.cnblogs.com/landeanfen/p/5501487.html 阅读目录 一.void无返回值 二.IHttpActionResult 1.Json(T c ...
随机推荐
- liunx查看端口使用情况
netstat -ntlp //查看当前所有tcp端口
- K8S实现不同节点POD获取不同IP
背景介绍 某混合云场景k8s,云上和云下的node,需要将同一个域名解析到不同的IP 方案 利用Coredns+2个第三方插件,fwdpolicy,conditional 编译Coredns(在win ...
- composer更新报错
在用composer安装Yii2的扩展插件时,报错: [UnexpectedValueException] Could not parse version constraint <=2.*: I ...
- Vue的v-html指令说明,含案例
v-html指令总结: 1.作用:向指定节点中渲染包含html结构的内容 2.与插值语法的区别: (1)v-html 会替换掉节点中所有的内容,{{}}则不会 (2)v-html 可以识别html 结 ...
- knife4j 整合springboot
1.添加依赖 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife ...
- CORE8051-APB总线
1 APB总线 core8051s内核支持APB3总线,APB writebuffer 为{XWB3, XWB2, XWB1, ACC}; 写访问 对FC00以上地址写值,即表示APB写操作,值为(X ...
- Java基础之注释
注释 在Java的编写过程中我们需要对一些程序进行注释,除了自己方便阅读,更为别人更好理解自己的程序,可以是编程思路或者是程序的作用. 注释不会被执行,是给写代码的人看的. 书写注释是一个非常好的习惯 ...
- 三种将list转换为map的方法
1) 传统方法假设有某个类如下 Java代码 class Movie { private Integer rank; private String description; public Movie( ...
- maven install 报错 The POM for com.oracle:ojdbc6:jar:11.2.0.7.0 is missing, no dependency information available
The POM for com.oracle:ojdbc6:jar:11.1.0.7.0 is missing, no dependency information available The POM ...
- eclipse中同步git代码报错checkout conflict with files
1.Team--->Synchronize Workspace 2.在同步窗口找到冲突文件,把自己本地修改的复制出来 3.在文件上右键选择 Overwrite----->Yes , 4.再 ...