请教:简单的Delphi向web服务器提交问题,初学,请指教!
开发环境:WIN10家庭版,Delphi XE4
功能需求:Delphi使用IdHTTP控件向web服务器发送一个请求,获得返回的数据。该服务器支持XML和JSON返回,说明中提到需要——“客户端指定ContentType="application/json",则服务器返回JSON格式”
请求语句:http://**.**.**.**:**/api/**/getlastinfo?tid=2123123&key=3546-2232-23421-2342
我使用Edge直接在浏览器中输入上述链接,返回正常:
{"tid":"2123123","Time":0,"Dir":240,"Mileage":0"Addr":{"Province":"山东省","City":"济南市"},}
我使用DELPHI写入,代码如下:
url := 'http://**.**.**.**:**/api/**/getlastinfo?tid=2123123&key=3546-2232-23421-2342';
IdHTTP.Get(url, ts); // ts 为TStringStream
ts.Position := 0;
ajson := SuperObject.so(ts.DataString); // ajson为ISuperObject
dir := ajson['Dir'].AsInteger; // 此句报错了
我把报错的语句注释掉,加上了Memo1.Lines.Add(ajson.AsString); 想看看返回的是否正确,结果Memo1显示的内容如下:
<TDetail xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CloudMap.Models"><Time>0</Time><Dir>240</Dir><Addr><City>娴庡崡甯?/City><Province>灞变笢鐪?/Province></Addr></TDetail>
返回的应该不是JSON类型了,而且还是乱码,明明浏览器中测试通过,为什么不行能。是不是用IdHTTP发送请求错误?
在线等,谢谢!