Http协议访问DataSnap Rest 服务器

Http协议访问DataSnap Rest 服务器

Http协议访问DataSnap Rest 服务器

用TIDHttp访问DataSnap Rest服务器,在服务器采用了用户验证的情况下,客户端需要注意下面的细节,否则不能正常连接。

假如服务器有如下的用户验证:

procedure TSC.DSAuthenticationManager1UserAuthenticate(Sender: TObject; const Protocol, Context, User, Password: string; var valid: Boolean; UserRoles: TStrings);var sCheckCode : string;begin valid := False; sCheckCode := CMBSrvIniSetting.SrvCnnCheckCode; if PassWord.Equals(sCheckCode) then begin valid := True; end;end;

那么在客户端连接的时候,必须把这个密码传递过去,否则会发生401错误。

procedure TForm15.Button2Click(Sender: TObject);var url, params, Text: string; code: Integer; http: TIDHttp;begin http:= TIDHttp.Create(nil); http.Request.BasicAuthentication := True; http.request.password := "密码"; params := Edit1.Text; url:= "http://192.168.10.182:8081/datasnap/rest/TSM/EchoString/"; try text := http.Get(URL+TIdURI.ParamsEnCode(params)); Edit2.Text := Text; except on E: Exception do begin end; end;end;

这样客户端就可以正常访问服务器的方法了。

此外,如果客户端采用Post的方式访问服务器的话,服务器的方法在定义的时候需要在前面加上Update前缀:UpdateEchoString。

TIdURI类定义在IdURI.pas单元。

分类:Delphi XE 2-7

标签:Delphi

封三郎

关注 - 1

粉丝 - 5

0

0

上一篇:由于@@ServerName等问题对SQL增量升级脚本进行补充

下一篇:Delphi用QJSON解析JSON格式的数据

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

http://www.pinlue.com/style/images/nopic.gif

分享
评论
首页