由于进行了aes加密
当IdHttp Post数据到Java后台时 发现加号变空格
原因是
application/x-www-form-urlencoded
C/类C/delphi并不会自动进行urlEncode.
但是java中
org.apache.catalina.connector.Request
Request会先urlDecode.
但是后来发现IdHttp Post(urlEncode(data))的时候 java后台并不会自动解密
目前未发现原因,只能在java端手动解密
->>这就导致了我没有encode 你java自动decode 我encode了 java又不自动encode了
目前尚未知晓原因 估计是IdHttp 的一个bug
解决方法:使用另外一种方式去post
function TJsonBusi.GetJson(aSetParamListEvent: TSetParamListEvent): String;
varParamList: TStringList;
req: IXMLHTTPRequest;
url: WideString; //要访问的url
tempStr, params : string;
I: Integer;
begin
Result := '';
ParamList := TStringList.Create;
try
try
aSetParamListEvent(ParamList);
req := CoXMLHTTP.Create;
url := 'http://localhost:2001/check';
req.open('Post', url, False, EmptyParam, EmptyParam);
//设置post必要参数
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
//req.SetRequestHeader('Content-Length', intToStr(length(sParams)));
//提交数据
for tempStr in ParamList do
params := params+tempStr+'&';
//发送请求
req.send(params);
Result:= req.responseText;
except
//
end;
finally
ParamList.Free;
end;
end;