标签:style blog class c code java
用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单元。
Http协议访问DataSnap Rest 服务器,布布扣,bubuko.com
标签:style blog class c code java
原文地址:http://www.cnblogs.com/codingnote/p/3739102.html