|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2021/12/12 1:21:57 |
标题: |
|
加入我的收藏 |
楼主: |
在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;
----------------------------------------------
-把学习当信仰 |
作者: |
|
2021/12/12 2:26:07 |
1楼: |
解决了,感谢以下网友 https://www.cnblogs.com/limingliyu/p/5638966.html
----------------------------------------------
-把学习当信仰
|
作者: |
|
2021/12/12 2:29:34 |
1楼: |
既然写了: http.Request.CharSet := 'utf-8'; 但是没看到你把 aParamstr 变成utf8啊
----------------------------------------------
只有偏执狂才能生存!
|
|