用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 服务器的更多相关文章

  1. 配置可以通过http协议访问的svn服务器

    通过HTTP协议访问版本库是Subversion的亮点之一,这种方式具备许多svnserve服务器所没有的特性,使用上更加灵活. 关于mode_day_svn模块: 由于Subversion需要版本化 ...

  2. idhttp访问DATASNAP有密码验证的中间件

    idhttp访问DATASNAP有密码验证的中间件 用TIDHttp访问DataSnap Rest服务器,在服务器采用了用户验证的情况下,客户端需要提交密码,否则不能正常连接. procedure T ...

  3. paramiko:实现ssh协议,对linux服务器资源的访问

    介绍 网络传输是遵循协议的,比如SSH,paramiko则是实现了SSHv2协议的一个python库(底层使用的是cryptography).有了paramiko之后,我们便可以通过python使用s ...

  4. SecureCRT连接VirtualBox下的ubuntu以及NMP的搭建与通过宿主机访问该NGINX服务器过程

    一直使用wamp作为开发环境,只是工作中时常会遇到在wamp下没问题但是提交到服务器生产环境会出现一些意想不到的情况,由此萌生了在本机搭建LNMP环境的想法,我个人不知道其他人的虚拟机搭建服务器环境是 ...

  5. 如何禁止DELETE、PUT、OPTIONS、TRACE、HEAD等协议访问应用程序 .

    原文:http://linder.iteye.com/blog/735435   简介 WebDAV (Web-based Distributed Authoring and Versioning)是 ...

  6. 【转】Linux下nginx配置https协议访问的方法

    一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...

  7. Android 使用 HTTP 协议访问网络

    正在看<第一行代码>,记录一下使用 HTTP 协议访问网络的内容吧! 在Android发送Http请求有两种方式,HttpURLConnection和HttpClient. 1.使用Htt ...

  8. CentOS6.5 下在Nginx中添加SSL证书以支持HTTPS协议访问

    参考文献: 1. NginxV1.8.0安装与配置 2. CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问 3. nginx配置ssl证书的方法 4.nginx强制使用https访问 ...

  9. Findout之为什么公司内部不能使用SSH协议连接外网服务器

    今天在公司学习Linux的过程中,想试着像在Windows中操作Github一样对代码进行克隆,只不过是使用命令行的方式.根据一篇博文(Linux下初次使用Github配置)进行了配置,当我进行到第二 ...

随机推荐

  1. .NET 集合类型性能分析

    集合 Add Insert Remove Item Sort Find List<T> 如果集合重置大小,就是O(1)或O(n) O(n) O(n) O(1) O(n log n),最坏情 ...

  2. ruby注意点

    1.强类型,即不会自动进行类型转换,而C/C++为弱类型. # Ruby i = 1 puts "Value is " + i # TypeError: can't convert ...

  3. Android DrawerLayout Plus 增强版抽屉菜单

    DrawerLayout是官方提供的侧滑菜单,相比SliddingMenu,它更加轻量级.默认情况下,DrawerLayout可以设置左侧或者右侧滑出菜单.如下,   xml布局: <!-- & ...

  4. android开源项目总汇

    http://www.cnblogs.com/wanqieddy/p/3709466.html

  5. ace_admin_1.3.1 wysiwyg 工具条下拉出不来

    试了很久才知道是因为<script src="__PUBLIC__/assets/js/bootstrap.min.js"></script>  这个js加 ...

  6. 1012 C语言文法

    源程序〉-〉<外部声明>|<源程序><外部声明><外部声明>-><定义函数>|<声明><函数定义>→<类 ...

  7. 《BI那点儿事》数据流转换——导入列、导出列

    导入列: 导入列例子现在来做一个例子:创建路径D:\Pictures随便在路径D:\Pictures中粘贴4个比较小的图像文件命名为01.png.02.png.03.png.04.png在路径D:\P ...

  8. spring bean的初始化

    scope:作用域   singleton  prototype  request session   默认为singleton lazy-init:default=false ,false ,tru ...

  9. Oracle重做日志文件

    一.联机重做日志的规划管理 1.联机重做日志 记录了数据的所有变化(DML,DDL或管理员对数据所作的结构性更改等) 提供恢复机制(对于意外删除或宕机利用日志文件实现数据恢复) 可以被分组管理  11 ...

  10. Python中的logging模块

    http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...