求救!!!Delphi调用webService传递XML参数

本人Delphi菜鸟一枚,刚入职,在工作中遇到以下问题,请各位大神帮忙。

2方案设计详情
2.1概述
主要用于通过接口实现设备直传数据到山东省学生体质健康标准数据管理系统,其中数据上传是对直接上传学生体测数据到山东省学生体质健康标准数据管理系统的接口设计描述,其中包含三个参数,一是加密后的用户信息,二是需要同步的体测数据,三是上传数据的设备所属厂商及数据上传学校标识码等信息加密后唯一串号,用来确定学生体测数据上传设备所属厂商、学校等基本信息。

2.2接口详细描述
数据上传接口分为两个:学生体测数据上传接口和学生体测环境上传接口。
学生体测数据上传接口主要是用于解决从智能体测设备测试完成后,直接将学生测试数据通过该接口上传至体质健康管理系统中,数据上传后为保存状态,需要学校用户登录系统人工检查后点击上报。
学生体测环境上传接口主要是用于解决从采集软件中将学校记录的测试教师、测试时间、测试地点、测试器材等测试环境信息上传至体质健康管理系统中,数据上传后为保存状态,需要学校用户登录系统人工检查后点击上报。

2.3学生体测上传数据接口
public String postXsTcsj(String userInfo,String tcsjXml,String tcsbch)
说明 接收学生体测数据
参数说明 userInfo-------加密后的用户信息,格式username|password
tcsjXml ---------需要同步的体测数据,XML格式参见附录二
tcsbch --------上传数据的设备所属厂商及数据上传学校标识码等信息加密后组成的唯一串号
返回值 0:用户名密码格式不正确
1:用户名密码错误
-1:程序出错,@后面跟错误信息
2:学校标识码不存在
3:成功
4@xxxx:学生不存在,@后面为学生xjfh
5@ xxxx:学生成绩范围校验错误,第n个学生的xx项目不符合xx范围
8: 唯一串号不正确
访问地址 http://58.195.98.201:9081/sdtc/services/tcSjService.tcSj

2.4 学生体测环境上传接口
public String postTcHj(String userInfo,String tchjXml,String tcsbch)
说明 接受体测环境
参数说明 userInfo-------加密后的用户信息,格式username|password
tchjXml ---------需要同步的体测环境,XML格式参见附录四
tcsbch --------上传数据的设备所属厂商及数据上传学校标识码等信息加密后组成的唯一串号
返回值 0:用户名密码格式不正确
1:用户名密码错误
-1:程序出错,@后面跟错误信息
2:学校标识码不存在
3:成功
8: 唯一串号不正确
访问地址 http://58.195.98.201:9081/sdtc/services/tcHjService.tcHj

3上传数据XML样式
3.1学生体测数据XML样式:
<?xml version='1.0' encoding='UTF-8'?>

<!—学校标识码-->
<!—学生信息-->
<!—学籍号-->
<!—项目成绩(标签名由tc+项目编号组成)-->
...




...


3.2体测环境xml样式:
<?xml version='1.0' encoding='UTF-8'?>

<!—学校标识码-->
<!—测试环境-->
<!—年级编号-->
<!—编辑编号-->
<!—项目编号-->
<!—测试老师-->
<!—测试时间-->
<!—测试地点-->
<!—测试器材-->
<!—测试方式(1:手工 2:仪器)-->


4测试接口数据
此文档提供设备通过接口上传到山东省学生体质健康标准数据管理系统(接口调试版本)所需要的测试数据,所提供的数据仅适用于调试,非正式数据。
学校上传数据唯一串号:012C2C9BA925FAF8045B2FD9B02A2664
登录用户名:设备测试学校
登录密码:sbcs123!
测试学校标识码:1234567890

具体学生数据:
班级编号 班级名称 学籍号 民族代码 姓名 性别 出生日期 生源地 身份证号 家庭住址
2016010101 2016级测试一班 20160101011 1 李隆 1 19951010 370000 371421199510145673 天津市南开区黄河道广
2016010101 2016级测试一班 20160101012 1 杨孟 1 19951109 370000 120225199511012345 天津市蓟县舒馨家
2016010102 2016级测试二班 20160101023 1 姚雅 1 19970509 370000 130705199705012345 河北省张家口市宣
2016010102 2016级测试二班 20160101024 1 彭雪 2 19941116 370000 132627199411112345 河北省丰宁县大阁镇
2015010101 2015级测试一班 20150101015 1 古手 2 19950530 370000 440508199505312345 广东省汕头市金平区中山
2015010101 2015级测试一班 20150101016 1 许锐 1 19950124 370000 152522199501212345 内蒙古锡林郭勒盟阿巴嘎
2015010101 2015级测试一班 20150101017 1 王胜 2 19940122 370000 152801199401212345 内蒙古巴彦淖尔市

以上为方案内容,因格式问题显示有些乱。如需要方案原文可Mail:techfront@163.com,我将原文发送过去。希望有大神能抽时间帮我写个示例程序。如有帮助,必有重谢。

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android用ksoap2调用Webservice怎么传递List集合参数?

最近用到ksoap2调用Webservice获取数据,需要传递一些参数过去,除了基本类型的参数,还有List集合参数,各种试都报错,求教怎么传递List集合参数?

RPCServiceClient调用webservice传递WebParam参数

org.apache.axis2.AxisFault: Unmarshalling Error: unexpected element (uri:"", local:"arg0"). Expected elements .....

Java调用Webservice数组参数传递有问题

String[] arr = new String[2]; arr[0]="abc"; arr[1]="def"; String str="myteststr"; Client client = new Client(new URL("http://xx.xx.xx.xx:9084/eee/infoService?wsdl")); Object[] results = client.invoke("getStudentInfo",new Object[] {str,arr}); 上面的代码是我调用java webservice的getStudentInfo方法。参数为一个字符串数组一个字符串,但是我在后台的 getStudentInfo方法打印的时候str参数能正常打印出来,但是arr这个字符串数组却打印的不对。只是打印出是一个String的对象。并且我从后台输出.length的时候竟然是1。但是我从客户端调用的时候明明传进去的是一个长度为2的字符串数组。求高手指导, 谢谢!!

axis1.4调用webservice 传递自定义对象参数出错

调用客户端后出现: org.xml.sax.SAXException: Invalid element in cn.services.QueryEquipmentRequest - queryEquipmentRequest 客户端代码(其中queryEquipmentRequest,QueryEquipmentResponse是我自定义的对象): call.addParameter(new QName(nameSpace, "queryEquipmentRequest"), new QName(nameSpace, "queryEquipmentRequest"), ParameterMode.IN); // // @@需修改成对应的输出参数名 call.setReturnType(new QName(nameSpace, "queryEquipmentResponse"), QueryEquipmentResponse.class); // // // 需要根据xsd生成的bean,对输入输出的XSD文件定义的类型进行注册映射关系 //// // @@如本服务输入输出XSD文件中有四个自定义类型 queryEquipmentRequest、queryEquipmentResponse、deviceItem、deviceItemList,配置如下 QName queryEquipmentRequest = new QName(nameSpace, "queryEquipmentRequest"); call.registerTypeMapping(QueryEquipmentRequest.class, queryEquipmentRequest, new BeanSerializerFactory(QueryEquipmentRequest.class, queryEquipmentRequest), new BeanDeserializerFactory( QueryEquipmentRequest.class, queryEquipmentRequest)); // QName queryEquipmentResponse = new QName(nameSpace, "queryEquipmentResponse"); call.registerTypeMapping(QueryEquipmentResponse.class, queryEquipmentResponse, new BeanSerializerFactory(QueryEquipmentResponse.class, queryEquipmentResponse), new BeanDeserializerFactory( QueryEquipmentResponse.class, queryEquipmentResponse)); 服务端的wsdl文件为: <wsdl:definitions targetNamespace="http://gd.soa.csg.com"><!--WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)--><wsdl:types><schema elementFormDefault="qualified" targetNamespace="http://gd.soa.csg.com"><complexType name="queryEquipmentRequest"><sequence><element maxOccurs="1" minOccurs="0" name="id" type="xsd:string"/></sequence></complexType><element name="queryEquipmentRequest" type="impl:queryEquipmentRequest"/><complexType name="queryEquipmentResponse"><sequence><element name="replyCode" type="xsd:string"/></sequence></complexType><element name="queryEquipmentResponse" type="impl:queryEquipmentResponse"/></schema></wsdl:types><wsdl:message name="queryEquipmentResponse"><wsdl:part element="impl:queryEquipmentResponse" name="queryEquipmentResponse"/></wsdl:message><wsdl:message name="queryEquipmentRequest"><wsdl:part element="impl:queryEquipmentRequest" name="queryEquipmentRequest"/></wsdl:message><wsdl:portType name="QueryEquipment"><wsdl:operation name="queryEquipment" parameterOrder="queryEquipmentRequest"><wsdl:input message="impl:queryEquipmentRequest" name="queryEquipmentRequest"/><wsdl:output message="impl:queryEquipmentResponse" name="queryEquipmentResponse"/></wsdl:operation></wsdl:portType><wsdl:binding name="QueryEquipmentSoapBinding" type="impl:QueryEquipment"><wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="queryEquipment"><wsdlsoap:operation soapAction="http://gd.soa.csg.com/queryEquipment"/><wsdl:input name="queryEquipmentRequest"><wsdlsoap:body use="literal"/></wsdl:input><wsdl:output name="queryEquipmentResponse"><wsdlsoap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="QueryEquipment"><wsdl:port binding="impl:QueryEquipmentSoapBinding" name="QueryEquipment"><wsdlsoap:address location="http://127.0.0.1:8400/webServiceTest/services/QueryEquipment"/></wsdl:port></wsdl:service></wsdl:definitions>

java调用webservice接口发送xml报文

1.webservice接口是axis1发布的 2.请求报文格式如下 ``` <?xml version="1.0" encoding="gbk"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header xmlns="http://hwsoft.vms.cn"> <sysID>SW</sysID> <sysPassWord>123456</sysPassWord> <requestTime>2016-01-28</requestTime> <currentPage>1</currentPage> <pageSize>2</pageSize> <totalNum>100</totalNum> </SOAP-ENV:Header> <SOAP-ENV:Body xmlns="http://hwsoft.vms.cn"> <KPRQQ>2015-01-28</KPRQQ> <KPRQZ>2016-01-29</KPRQZ> <RZJG></RZJG> <FPDM></FPDM> <FPHM></FPHM> <FPLX></FPLX> </SOAP-ENV:Body> </SOAP-ENV:Envelope> ``` 如果我要调用这个接口并且严格按照这个格式发送请求,需要用什么方式调用? 求大神给个实例参考。

求教一个向Webservice传递参数被转码的错误!

我用下面的方式调用一个webservice的方法,传递的strWhere这个参数里面写了个字段模糊匹配的sql语句" strWhere=IDCARD LIKE '%1234567890%' ",在将该参数向webservice传递过去后,webservice那边收到的字符串是将该字符串里面的第一个“%”和后面紧跟着的两位数字进行了转义,显示为“IDCARD LIKE '34567890%'”,其中的不可显示字符,其实是ascii码为12的字符!也就是说这样调用,“%”和后面紧跟的“12”被转义成一个字节了,本人刚学java,对这些编码转换的流程也搞不懂,一时不知道问题出在哪里,贴出代码,往各位大侠指导一下!谢谢! public static void main(String[] args) { // TODO Auto-generated method stub // 获取WebService数据 String strWhere = "strWhere=IDCARD LIKE '%1234567890%13'"; String s3 = HttpUtil.doPost("http://localhost:1739/bill.asmx", "HelloWorld", strWhere, "application/x-www-form-urlencoded;charset=utf-8;"); System.out.println(s3); System.exit(0); } public static String doPost(String ipStr, String url, String strWhere, String contentType) { String resultLine; OutputStream outputStream = null; OutputStreamWriter outputStreamWriter = null; System.out.println("sql=" + strWhere); InputStream inputStream = null; InputStreamReader inputStreamReader = null; BufferedReader bufferedReader = null; StringBuffer stringBuffer = new StringBuffer(); try { String strUrl = ipStr + "/" + url; URL realUrl = new URL(strUrl); URLConnection connection = realUrl.openConnection(); HttpURLConnection httpURLConnection = (HttpURLConnection) connection; httpURLConnection.setDoOutput(true); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setRequestProperty("content-type", contentType); outputStream = httpURLConnection.getOutputStream(); outputStreamWriter = new OutputStreamWriter(outputStream); System.out.println("strWhere=" + strWhere); outputStreamWriter.write(strWhere);// ,0,strWhere.length() outputStreamWriter.flush(); if (httpURLConnection.getResponseCode() >= 300) { throw new Exception( "Http Request is not success,Response code is " + httpURLConnection.getResponseCode()); } inputStream = httpURLConnection.getInputStream(); inputStreamReader = new InputStreamReader(inputStream, "utf-8"); bufferedReader = new BufferedReader(inputStreamReader); while ((resultLine = bufferedReader.readLine()) != null) { System.out.println("返回的行=" + resultLine); if (!resultLine.trim().equals("")) { stringBuffer.append(resultLine).append("\n"); // 读完每行后换行 } } } catch (Exception e) { e.printStackTrace(); } return stringBuffer.toString(); }

java客户端使用axis1.4jar包调用webService传递复杂参数

有如下一段WSDL,请问使用axis1.4jar包应该如何传递参数,谢谢。 ``` <xsd:complexType name="function"> <xsd:sequece> <xsd:element name="Head"> <xsd:sequece> <xsd:element name="e1"> <xsd:simpleType> ... </xsd:simpleType> </xsd:element> <xsd:element name="e2"> <xsd:simpleType> ... </xsd:simpleType> </xsd:element> </xsd:sequece> <xsd:element> </xsd:sequece> </xsd:complexType> ```

axis调用webservice报参数为空的问题

axis调用无参数的接口可以,但是一但有参数就出错 错误信息大致是:参数为空,但是我传的值打印出来是有值的。下面附上代码,大佬帮忙看看!谢谢 PS:大致的错误我明白了,这个链接需要两个参数一个data 一个GUID 但是wsdl文件里只有一个data参数!!所以这个GUID只能拼接上去,axis可以拼接吗?在哪个地方拼接 public static String MethodsGeneral(String url,String methods, Map<String, Object> params,String str) { String GUID="7b33dd14-b183-4d1e-8c96-04baf421498f"; String result=""; try{ String namespace ="http://tempuri.org/"; String soapActionUI = "http://tempuri.org/"+methods; String endpoint = url; Service service = new Service(); Call call = (Call)service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setUseSOAPAction(true); call.setSOAPActionURI(soapActionUI); call.setOperationName(new QName(namespace,methods)); call.addParameter(new QName(namespace,"data"),org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN); call.addParameter(new QName(namespace,"GUID"),org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.Constants.XSD_STRING); JSONObject jsonObject = new JSONObject(params); HashMap<String, String> allParam = new HashMap(); String beforeEnc = jsonObject.toString(); String cipherInfo = null; try { cipherInfo = AESUtil.encrypt(beforeEnc); } catch (Exception e) { e.printStackTrace(); } // 把加密后的字符串转化为16进制 String temp = StringUtil.str2HexStr(cipherInfo); //访问的方法名 System.out.println(temp); System.out.println(GUID); result = (String)call.invoke(new Object[]{temp,GUID}); }catch(Exception e){ e.printStackTrace(); System.out.println("调用webservice失败!"); } //將result字符串解析成要用的字符串 return result; } 以下是错误信息:AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server faultSubcode: faultString: System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---&gt; System.NullReferenceException: 未将对象引用设置到对象的实例。 在 Fuli.WebService.BaseWebService.AESEncrypt(String toEncrypt) 位置 D:\花汇购项目\Backend\Fuli.WebService\BaseWebService.cs:行号 426 在 Fuli.WebService.BaseWebService.GetExceptionReturnInfo(String exMessage) 位置 D:\花汇购项目\Backend\Fuli.WebService\BaseWebService.cs:行号 311 在 Fuli.WebService.UserWebService.GetAddresslistByUsername(String data) 位置 D:\花汇购项目\Backend\Fuli.WebService\UserWebService.asmx.cs:行号 689 --- 内部异常堆栈跟踪的结尾 --- faultActor: faultNode: faultDetail:

我使用springboot cxf 调用webservice接口,传入参数,无法正常调用接口?

环境:springboot 2.0.2 cxf3.2.5 文件上传, webservice接口: ![图片说明](https://img-ask.csdn.net/upload/201812/12/1544604689_531421.png) Java 调用: ![图片说明](https://img-ask.csdn.net/upload/201812/12/1544604733_112335.png) webservice需要一个 base64Binary,我在Java中传入byte[],会出现以下错误 ![图片说明](https://img-ask.csdn.net/upload/201812/12/1544604906_396846.png) ![图片说明](https://img-ask.csdn.net/upload/201812/12/1544604916_672640.png) 我将文件转成btye[] 在通过base64加密,在转回btye[] 依旧出现上面问题。 然而我转入一个文件转成btye[] 在通过base64加密的String时,只要不是byte[]类型,都会报下面错误: ![图片说明](https://img-ask.csdn.net/upload/201812/12/1544605128_602878.png) 哪位大佬能帮忙解决yi'xia

C#调用java webservice xml转译

c#调用java webservice xml "<"被转译了&lt;&gt;

webservice通过url传递参数调用接口,参数中含“/”要怎么处理?

我现在在做一个调用企业QQ接口来发信息的平台,是通过webservice在url传递参数调用接口。。 但是短信内容中含斜杠时会干扰参数的传递,大神教我怎么解决啊? @GET @Path("/sendTips/{receivers}/{content}/{windowTitle}/{tipsTitle}/{tipsUrl}") @Produces ({MediaType.APPLICATION_JSON}) public String sendTips(@PathParam("receivers") String receivers, @PathParam("content") String content, @PathParam("windowsTitle") String windowsTitle, @PathParam("tipsTitle") String tipsTitle, @PathParam("tipsUrl") String tipsUrl) throws SystemException;

webservice调用时怎么传参数

<?xml version="1.0" encoding="UTF-8"?> <!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e. --> <!-- Generated by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e. --> -<definitions name="HelloService" targetNamespace="http://webservice_302/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://webservice_302/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> -<types> -<xsd:schema> <xsd:import schemaLocation="http://192.1.1.64:8082/Service/ServiceHello?xsd=1" namespace="http://webservice_302/"/> </xsd:schema> </types> -<message name="getValue"> <part name="parameters" element="tns:getValue"/> </message> -<message name="getValueResponse"> <part name="parameters" element="tns:getValueResponse"/> </message> -<portType name="Hello"> -<operation name="getValue"> <input message="tns:getValue" wsam:Action="http://webservice_302/Hello/getValueRequest"/> <output message="tns:getValueResponse" wsam:Action="http://webservice_302/Hello/getValueResponse"/> </operation> </portType> -<binding name="HelloPortBinding" type="tns:Hello"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> -<operation name="getValue"> <soap:operation soapAction=""/> -<input> <soap:body use="literal"/> </input> -<output> <soap:body use="literal"/> </output> </operation> </binding> -<service name="HelloService"> -<port name="HelloPort" binding="tns:HelloPortBinding"> <soap:address location="http://192.1.1.64:8082/Service/ServiceHello"/> </port> </service> </definitions> 下面是我的调用代码: ``` Service service = new Service(); Call call = (Call) service.createCall(); String url = "http://192.1.1.64:8082/Service/ServiceHello?wsdl"; call.setTargetEndpointAddress(url); call.setOperationName(new QName("http://webservice_302/", "getValue")); call.addParameter(new QName("http://webservice_302/", "name"), org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); String result = (String) call.invoke(new String[] { "11" }); System.out.println(result); ``` 下面是接口的方法点: ``` public String getValue(String name){ return "欢迎你! "+name; } ``` 可以成功调用,返回结果是:欢迎你! null 说明参数没有传进去,请问这里我应该怎么写呢?

关于动态调用webservice

使用CXF动态客户端调用webservice,代码如下: JaxWsDynamicClientFactory dynamicClient = JaxWsDynamicClientFactory .newInstance(); String wsdl = "http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx?wsdl"; Client client = dynamicClient.createClient(wsdl); ServiceInfo serviceInfo=client.getEndpoint().getService().getServiceInfos().get(0); Set<QName> qSet=serviceInfo.getMessages().keySet(); Iterator<QName> qIter=qSet.iterator(); while(qIter.hasNext()){ QName q=qIter.next(); //包名 String packageName=JAXBUtils.namespaceURIToPackage(serviceInfo.getName().getNamespaceURI()); //类名 String className=JAXBUtils.nameToIdentifier(q.getLocalPart(),JAXBUtils.IdentifierType.INTERFACE); //获取生成代理类的全部完整路径 System.out.println("类="+packageName+"."+className); //加载类 **Object objArgs = Thread.currentThread().getContextClassLoader().loadClass(packageName+"."+className).newInstance();** } 加载类的时候报java.lang.ClassNotFoundException,但是同样的方法调用我本地发布的webservice的时候一切正常,问题出在哪里?

delphi 7 通过webservice 取值不完整

![图片说明](https://img-ask.csdn.net/upload/201801/26/1516938197_835685.png) 出现这种会是什么情况造成的

ajax带参数调用webService时的发送数据问题

![图片说明](https://img-ask.csdn.net/upload/201510/16/1444957034_225737.png) 如图,ajax带参数调用webService时的发送数据时为什么是 var poststr = "name=" + $("text1").value;而不是 var poststr = $("text1").val![图片说明](https://img-ask.csdn.net/upload/201510/16/1444957266_190435.png)ue

关于oracle调用webservice的问题

在oracle的包里面调用delphi开发的一个webservice,第一次调用可以成功,然后就报错ORA-29532: Java 调用被未捕获的 Java 异常错误终止: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: oracle.j2ee.ws.saaj.ContentTypeException: Not a valid SOAP Content-Type: text/html 必须要断开oracle然后重新连接才可以,但是其他的开发工具调用确正常。 同样的写法,调用java开发的webservice就没有问题。

IOS 调用C#写的Webservice ,传递的参数到Webservice取出的值为NULL

问题描述:IOS 调用C#写的Webservice ,传递的参数到Webservice取出的值为NULL,传递前在IOS里测试能取到值,麻烦用过这块的帮我看一下,已困扰我两天 啦~~哈哈 代码: NSMutableString *tps=[NSMutableString stringWithString:@""]; //存储参数名称 NSMutableString *vps=[NSMutableString stringWithFormat:@""];//存储参数值 NSMutableString *ts=[NSMutableString stringWithFormat:@""];//组合字符串变量 NSMutableString *mreakString=[NSMutableString stringWithFormat:@""];//组合字符串变量 [mreakString appendString:@"<"]; [mreakString appendString:MethodName]; //方法名 [mreakString appendString:@" xmlns=\"http://tempuri.org/\">"]; //[ParametersKey count] for (int i = 0; i <[ParametersKey count]; i++) { tps = [ParametersKey objectAtIndex:i]; vps = [ParametersValue objectAtIndex:i]; [ts appendString:@"<"]; [ts appendString:@"cnono"];//参数名 [ts appendString:@">"]; [ts appendString:@"17"]; //参数值 (--- 17 传递到webservice为NULL值 ----) [ts appendString:@"</"]; [ts appendString:@"cnono"]; [ts appendString:@">"]; [mreakString appendString:ts]; } [mreakString appendString:@"</"]; [mreakString appendString:MethodName]; [mreakString appendString:@">"]; NSMutableString *soapMessage2=[NSMutableString stringWithFormat:@""];; [soapMessage2 appendString:@"</soap:Envelope>"]; 生成的协议字符串为: requestData-----><?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";> <soap:Body > <getSelectData xmlns="http://tempuri.org/";/> </soap:Body> </soap:Envelope> <deleteCargoInfo xmlns="http://tempuri.org/";> <cnono>17</cnono> </deleteCargoInfo> </soap:Envelope> 服务器返回的串为: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";><soap:Body><deleteCargoInfoResponse xmlns="http://tempuri.org/";><deleteCargoInfoResult>1:webservicer return:Sql=delete from C where Cno=,param=</deleteCargoInfoResult></deleteCargoInfoResponse></soap:Body></soap:Envelope>

请问sql server如何调用webservice

sql server如何调用webservice: webservice中的函数中,参数为string类型,返回值为datatable,sql server怎么调用这个webservice

android调用webservice的传至问题

webservice端(地址:http://qingfeng-bbs.oicp.net:61/TCLYWebService.asmx) ================================================== using System; using System.Collections.Generic; using System.Web; using System.Web.Services; using TCLYWebService.Bean; using TCLYWebService.DB; using System.Web.Services.Protocols; namespace TCLYWebService { /// <summary> /// TCLYWebService 的摘要说明 /// </summary> [WebService(Namespace = "http://qingfeng-bbs.oicp.net:61/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] public class TCLYWebService : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public string InsertJd(string guojia, string shengji, string shiji, string xianji, string jdindex, string jdName, string locationX, string locationY) { DB.DB d = new DB.DB(); //JD jd = new JD(); //jd.Guojia = guojia; //jd.Shengji = shengji; //jd.Shiji = shiji; //jd.Xianji = xianji; //jd.Jdindex = jdindex; //jd.JdName = jdName; //jd.LocationX = Double.Parse(locationX); //jd.LocationY = Double.Parse(locationY); //string sql = string.Format("insert jd values('{0}','{1}','{2}','{3}','{4}','{5}',{6},{7})", jd.Guojia, jd.Shengji, jd.Shiji, jd.Xianji, jd.Jdindex, jd.JdName, jd.LocationX, jd.LocationY); string sql = string.Format("insert jd values('{0}','{1}','{2}','{3}','{4}','{5}',{6},{7})", guojia, shengji, shiji, xianji, jdindex, jdName, locationX, locationY); return d.inupdelData(sql); } } } ``` ``` android端传参数调用 ================================================== private void initBtnListener() { // TODO Auto-generated method stub btninsertjd.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 执行webservice后返回的结果 final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub if (msg.what == msg_suc) { SoapObject result = (SoapObject) msg.obj; // JSONObject obj=new // JSONObject(result.getProperty(0).toString()); new AlertDialog.Builder(MainActivity.this).setTitle("提示") .setMessage(result.getProperty(0).toString()).setPositiveButton("OK", null).show(); } } }; // 执行webService new Thread(new Runnable() { public void run() { // 命名空间 String nameSpace = "http://qingfeng-bbs.oicp.net:61"; // 调用的方法名称 // String methodName = "InsertJd"; String methodName = "HelloWord"; // EndPoint String endPoint = "http://qingfeng-bbs.oicp.net:61/TCLYWebService.asmx"; // SOAP Action // String soapAction = "http://qingfeng-bbs.oicp.net:61/InsertJd"; String soapAction = "http://qingfeng-bbs.oicp.net:61/HelloWord"; // 实例化SoapObject对象 SoapObject soapObject = new SoapObject(nameSpace, methodName); // soapObject.addAttribute("guojia", "中国"); // soapObject.addAttribute("shengji", "云南"); // soapObject.addAttribute("shiji", "保山"); // soapObject.addAttribute("xianji", "腾冲"); // soapObject.addAttribute("jdindex", "银杏村"); // soapObject.addAttribute("jdName", "银杏"); // soapObject.addAttribute("locationX", "45.12331"); // soapObject.addAttribute("locationY", "564.122313"); // soapObject.addProperty("guojia", "中国"); // soapObject.addProperty("shengji", "云南"); // soapObject.addProperty("shiji", "保山"); // soapObject.addProperty("xianji", "腾冲"); // soapObject.addProperty("jdindex", "银杏村"); // soapObject.addProperty("jdName", "银杏"); // soapObject.addProperty("locationX", "45.12331"); // soapObject.addProperty("locationY", "564.122313"); // JSONObject req = new JSONObject(); // try { // req.accumulate("guojia", "中国"); // req.accumulate("shengji", "云南"); // req.accumulate("shiji", "保山"); // req.accumulate("xianji", "腾冲"); // req.accumulate("jdindex", "银杏"); // req.accumulate("jdName", "银杏村"); // req.accumulate("locationX", "45.12331"); // req.accumulate("locationY", "564.122313"); // } catch (JSONException e1) { // // TODO Auto-generated catch block // e1.printStackTrace(); // } // soapObject.addProperty("parameters", req.toString()); // 使用soap1.1协议创建Envelop对象 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12); envelope.bodyOut = soapObject; envelope.dotNet = true; // 等价于envelope.bodyOut = soapObject; // envelope.setOutputSoapObject(soapObject); HttpTransportSE ht = new HttpTransportSE(endPoint); try { ht.call(soapAction, envelope); if (envelope.getResponse() != null) { // 获取服务器响应返回的soap消息 SoapObject result = (SoapObject) envelope.bodyIn; Message msg = new Message(); msg.obj = result; msg.what = msg_suc; handler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); } } }).start(); // new AlertDialog.Builder(MainActivity.this) // .setTitle("提示") // .setMessage("执行了") // .setPositiveButton("OK", null) // .show(); } }); } ``` ```

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Python可以这样学(第四季:数据分析与科学计算可视化)

Python可以这样学(第四季:数据分析与科学计算可视化)

组成原理课程设计(实现机器数的真值还原等功能)

实现机器数的真值还原(定点小数)、定点小数的单符号位补码加减运算、定点小数的补码乘法运算和浮点数的加减运算。

javaWeb图书馆管理系统源码mysql版本

系统介绍 图书馆管理系统主要的目的是实现图书馆的信息化管理。图书馆的主要业务就是新书的借阅和归还,因此系统最核心的功能便是实现图书的借阅和归还。此外,还需要提供图书的信息查询、读者图书借阅情况的查询等

土豆浏览器

土豆浏览器可以用来看各种搞笑、电影、电视剧视频

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

Java8零基础入门视频教程

Java8零基础入门视频教程

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

TTP229触摸代码以及触摸返回值处理

自己总结的ttp229触摸代码,触摸代码以及触摸按键处理

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

Ubuntu18.04安装教程

Ubuntu18.04.1安装一、准备工作1.下载Ubuntu18.04.1 LTS2.制作U盘启动盘3.准备 Ubuntu18.04.1 的硬盘空间二、安装Ubuntu18.04.1三、安装后的一些工作1.安装输入法2.更换软件源四、双系统如何卸载Ubuntu18.04.1新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列...

快速排序---(面试碰到过好几次)

原理:    快速排序,说白了就是给基准数据找其正确索引位置的过程.    如下图所示,假设最开始的基准数据为数组第一个元素23,则首先用一个临时变量去存储基准数据,即tmp=23;然后分别从数组的两端扫描数组,设两个指示标志:low指向起始位置,high指向末尾.    首先从后半部分开始,如果扫描到的值大于基准数据就让high减1,如果发现有元素比该基准数据的值小(如上图中18&amp;lt...

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

HTML期末大作业

这是我自己做的HTML期末大作业,花了很多时间,稍加修改就可以作为自己的作业了,而且也可以作为学习参考

Python数据挖掘简易入门

Python数据挖掘简易入门

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

C++语言基础视频教程

C++语言基础视频教程

UnityLicence

UnityLicence

软件测试2小时入门

软件测试2小时入门

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

Python数据分析师-实战系列

系列课程主要包括Python数据分析必备工具包,数据分析案例实战,核心算法实战与企业级数据分析与建模解决方案实战,建议大家按照系列课程阶段顺序进行学习。所有数据集均为企业收集的真实数据集,整体风格以实战为导向,通俗讲解Python数据分析核心技巧与实战解决方案。

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

超详细MySQL安装及基本使用教程

一、下载MySQL 首先,去数据库的官网http://www.mysql.com下载MySQL。 点击进入后的首页如下:  然后点击downloads,community,选择MySQL Community Server。如下图:  滑到下面,找到Recommended Download,然后点击go to download page。如下图:  点击download进入下载页面选择No...

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

爬取妹子图片(简单入门)

安装第三方请求库 requests 被网站禁止了访问 原因是我们是Python过来的 重新给一段 可能还是存在用不了,使用网页的 编写代码 上面注意看匹配内容 User-Agent:请求对象 AppleWebKit:请求内核 Chrome浏览器 //请求网页 import requests import re //正则表达式 就是去不规则的网页里面提取有规律的信息 headers = { 'User-Agent':'存放浏览器里面的' } response = requests.get

web网页制作期末大作业

分享思维,改变世界. web网页制作,期末大作业. 所用技术:html css javascript 分享所学所得

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

相关热词 c# 解析cad c#数字格式化万 c#int转byte c#格式化日期 c# wpf 表格 c# 实现ad域验证登录 c#心跳包机制 c#使用fmod.dll c#dll vb 调用 c# outlook
立即提问
相关内容推荐