DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: tkzcol
今日帖子: 38
在线用户: 4
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 akai1203 (w-dins) ★☆☆☆☆ -
普通会员
2021/12/12 1:21:57
标题:
idhttp的post方法返回乱码 浏览:912
加入我的收藏
楼主: 在firemonkey下 使用idhttp的post方法提交数据,返回的内容里面中文变乱码,用postman请求,返回的内容是正确的,请大家帮忙分析一下,下面是函数

function TWebController.Login(const aUser, aPassword: string): boolean;
var
  RequestUrl, ResponseString, aParamstr: string;
  http: TIdHTTP;
  LRequestParam: TStringStream;
  aJsonResult: ISuperObject;
  aLoginData: ISuperObject;
  aDataArray: ISuperArray;
  sl: TStringList;
begin
  result := false;
  http := TIdHTTP.Create;
  http.HandleRedirects := true;
  http.ReadTimeout := 5000;
  http.Request.UserAgent := 'Apache-HttpClient/4.5.3 (Java/1.8.0_60)'; //this save me
  http.Request.ContentType := 'application/json';
  http.Request.CharSet := 'utf-8';
  http.Request.Connection := 'Keep-Alive';
  http.HTTPOptions := [hoKeepOrigProtocol];
  aParamstr := Format('{"account":"%s","password":"%s"}', [aUser, aPassword]);
  RequestUrl := DATA_STR + 'login';
  LRequestParam := TStringStream.Create(aParamstr);
  LRequestParam.Position := 0;
  try
    ResponseString := http.Post(RequestUrl, LRequestParam);
    if ResponseString <> EmptyStr then
    begin
      ResponseString := Utf8ToAnsi(ResponseString);
      aJsonResult := SO(ResponseString);
      if aJsonResult['code'].AsString = OK then
      begin
        aLoginData := SO(aJsonResult['data'].AsString);
        TOKEN := aLoginData['token'].AsString;
        USRMA_MA001 := aLoginData['uid'].AsString;
        USRMA_MA002 := aLoginData['userName'].AsString;
        Result := true;
      end;
    end;
  finally
    http.Free;
    LRequestParam.Free;
  end;

end;
----------------------------------------------
-把学习当信仰
作者:
男 akai1203 (w-dins) ★☆☆☆☆ -
普通会员
2021/12/12 2:26:07
1楼: 解决了,感谢以下网友
https://www.cnblogs.com/limingliyu/p/5638966.html
----------------------------------------------
-把学习当信仰
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2021/12/12 2:29:34
1楼: 既然写了:
http.Request.CharSet := 'utf-8';
但是没看到你把 aParamstr 变成utf8啊
----------------------------------------------
只有偏执狂才能生存!
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS