--------开发环境是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调用接口,返回值乱码的更多相关文章

  1. 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用枚举?

    在阅读<阿里巴巴Java开发手册>时,发现有一条关于二方库依赖中接口返回值不允许使用枚举类型的规约,具体内容如下: 在谈论为什么之前先来科普下什么是二方库,二方库也称作二方包,一般指公司内 ...

  2. nginx访问日志中添加接口返回值

    因为nginx作为web服务器时,会代理后端的一些接口,这时访问日志中只能记录访问接口的status码,也就是说,只能获得200.404 这些的值 那么如何获得接口返回的response值呢? 下面开 ...

  3. asp+vb.net解决调接口返回中文乱码问题

    1.问题描述 涉及语言:vb,vbscript,vb.net,asp 最近在工作中碰到了这样一个问题:需要调用一个接口解析简历文件中的关键信息.直接用postman测试该接口,接口返回值没问题,但一旦 ...

  4. C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解

    前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解  ...

  5. (转载)delphi 中如何调用sql 存储过程

    delphi 中如何调用sql 存储过程 使用TADOStoredProc组件,可以,给你举个例子好了 with ADOStoredProc1 do begin Close; Parameters.C ...

  6. WebApi 接口返回值类型详解 ( 转 )

    使用过Webapi的园友应该都知道,Webapi的接口返回值主要有四种类型 void无返回值 IHttpActionResult HttpResponseMessage 自定义类型 此篇就围绕这四块分 ...

  7. WebApi接口返回值不困惑:返回值类型详解

    前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.作为程序猿,我们都知道参数和返回值是编程领域不可分割的两大块,此前分享了 ...

  8. WebApi 接口返回值不困惑:返回值类型详解。IHttpActionResult、void、HttpResponseMessage、自定义类型

    首先声明,我还没有这么强大的功底,只是感觉博主写的很好,就做了一个复制,请别因为这个鄙视我,博主网址:http://www.cnblogs.com/landeanfen/p/5501487.html ...

  9. (转)C# WebApi 接口返回值不困惑:返回值类型详解

    原文地址:http://www.cnblogs.com/landeanfen/p/5501487.html 正文 前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi ...

  10. [转]C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解

    本文转自:http://www.cnblogs.com/landeanfen/p/5501487.html 阅读目录 一.void无返回值 二.IHttpActionResult 1.Json(T c ...

随机推荐

  1. mplfinance常用方法

    一.主题相关 查看可用预设主题 mpf.available_styles() 默认的主题包括:'binance','blueskies','brasil','charles','checkers',' ...

  2. JDK、JRE、JVM和i++

    JRE:运行环境(包含JVM和JAVA核心类库) JDK:JAVA开发工具包(包含JRE和开发工具)----开发工具:指编译工具javac和运行工具java JVM:虚拟机,保证了跨平台 ++i:先运 ...

  3. JAVA远程调用 webService

    package com.example.demo; import org.apache.cxf.endpoint.Client; import org.apache.cxf.jaxws.endpoin ...

  4. MySQL日常工具的安装

    安装PT工具 #安装依赖 yum -y install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-Digest-M ...

  5. vue3 生成二维码 qrcodejs2-fix

    1.安装qrcodejs2-fix npm install qrcodejs2-fix 2.引入qrcodejs2-fix import QRCode from 'qrcodejs2-fix'; 3. ...

  6. Screw数据库文档生成神器

    引入依赖 <dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-cor ...

  7. JavaScript异步概念及与c#异步的区别

    JS的异步操作函数往往是通过回调函数来实现异步任务的结果处理,在ES6之前如setTimeout函数和异步AJAX编程: 在ES6规范后Promise 类对象使得书写异步任务更加容易,返回Promis ...

  8. Assetbundle 打包加载场景

    public class CreateAssetBundle : Editor{ // 打包unity场景文件 [MenuItem("Assets/Build AssetBundle Sce ...

  9. Jquery_002

    6.$.ajax方法 $.ajax([options]) options是一个json格式的对象,参数是通过键值对的形式存在的 常用的参数如下: async:(默认: true) 默认设置下,所有请求 ...

  10. 08 学生课程分数的Spark SQL分析

    读学生课程分数文件chapter4-data01.txt,创建DataFrame. 用DataFrame的操作或SQL语句完成以下数据分析要求,并和用RDD操作的实现进行对比: 每个分数+5分. 总共 ...