在Delphi 7中调用Java写的WebService,在参数传输上出现了一些问题:
1.Delphi中如何给WebService方法参数赋Null值,包括WideStrng、Integer、Boolean、ArrayOfString及ArrayOfArrayOfString等所有的数据类型。原因是服务端Java代码中所有对参数值的判断都采取如下的方式判断:
if (var == null) {
...
}
这样D中传过去的参数如字符串则是值为""的字符串,数据ArrayOfString及ArrayOfArrayOfString都是长度为0的数组。服务端不会为客户端修改代码,即使会也太多地方要改了:(。2.WebService中的数组类型ArrayOfString(array of string)及ArrayOfArrayOfString(array of ArrayOfString),在D中ArrayOfString可以正确传递参数,而ArrayOfArrayOfString一直无法正确传递。如D中数组为:
(('1', '2', '3'), ('4', '5', '6'), ('7', '8', '9'))
生成的Soap请求为:
<in2>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
</in2>
不知道如何才能正确赋值
1.Delphi中如何给WebService方法参数赋Null值,包括WideStrng、Integer、Boolean、ArrayOfString及ArrayOfArrayOfString等所有的数据类型。原因是服务端Java代码中所有对参数值的判断都采取如下的方式判断:
if (var == null) {
...
}
这样D中传过去的参数如字符串则是值为""的字符串,数据ArrayOfString及ArrayOfArrayOfString都是长度为0的数组。服务端不会为客户端修改代码,即使会也太多地方要改了:(。2.WebService中的数组类型ArrayOfString(array of string)及ArrayOfArrayOfString(array of ArrayOfString),在D中ArrayOfString可以正确传递参数,而ArrayOfArrayOfString一直无法正确传递。如D中数组为:
(('1', '2', '3'), ('4', '5', '6'), ('7', '8', '9'))
生成的Soap请求为:
<in2>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
<ArrayOfString xmlns="" xsi:nil="true"/>
</in2>
不知道如何才能正确赋值
解决方案 »
- DBGRID有没有办法在不连接数据库的情况下,对其进行记录的添加。
- 小弟想让一个照片在form上移动,怎么做?
- 某个字段所有记录求和的问题。
- 简单问题
- 怎样打包exe文件
- 如何测试某字段是否在当前数据集中?
- 当我的鼠标在编辑框上(如EDIT)上点击右键盘,就会出现一个右键菜单,有什么复制啊,粘贴等等的,我想知道如何让这个菜单不显示。急!!
- Delphi调用DLL的问题
- 我想用delphi调用一个动画文件,比如Flash动画,我该怎么做呢?
- ****两个简单问题:每个20'!!!!****
- DELPHI中如何调用XSD去验证XML的合法性?
- windows上delphi开发,连接linux机器,调用linux编程,可否实现?如何实现?
<in2>
<ArrayOfString>
<string>1</string>
<string>2</string>
<string>3</string>
</ArrayOfString>
<ArrayOfString>
<ArrayOfString>
<string>4</string>
<string>5</string>
<string>6</string>
</ArrayOfString>
<ArrayOfString>
<string>7</string>
<string>8</string>
<string>9</string>
</ArrayOfString>
</in2>是D中的请求序列化有问题,还是需要设置哪里?