delphi结构体中的pchar类型的字段,我转为c#结构体的string字段;
赋值的代码分别为:
delphi:oTask.taskBody:=pchar(getBody(sCode));
c#:oTask.taskBody = GetBody(sCode);
2个getbody函数都是获取一段相同的xml。
xml在补充里面,如图
不知道哪里的问题,delphi运行没问题,转过来的c#代码请求接口就是报错:任务对象中的任务体(请求报文)格式校验不通过。
求大佬指导
使用了其它访问模式
里面的双引号都加个转义符,举个例子:version="1.0"
有转义符 贴到这个上面就没了
@问心、: 你把这个去掉:SFZH=‘’
@三人乐乐: 这个不能去 这是格式要求,你看我上面的问题补充,delphi里面也是有的
@问心、: 你去掉试过没,先定位是哪里的格式错误
@三人乐乐: 试了 还是一样的错误。
@问心、: 你把 xml 简化一下,先只读取一个字段,看下出错不
@三人乐乐: 不行的 少个字段就请求不了 这些都是配置 请求方ID之类的
@三人乐乐: <?xml version="1.0" encoding="utf-8"?><RBSPMessage><Version>02</Version><SenderID>C00-00001799</SenderID><TimeStamp></TimeStamp><Validity></Validity><Security><Signature Algorithm="des"/><CheckCode Algorithm=""/><Encrypt></Encrypt></Security><Method><EndUser><UserName>陈亮</UserName><UserIDCard>610112197004191016</UserIDCard><UserDept>610100</UserDept><UserCertID></UserCertID></EndUser><Name>Query</Name><Items><Item><Name>DataObjectCode</Name><Value Type="string"><Data>B033</Data></Value></Item><Item><Name>Condition</Name><Value Type="string"><Data>SFZH='61032419820917371X'</Data></Value></Item><Item><Name>RequiredItems</Name><Value Type="arrayOf_string"><Row><Data>XM</Data><Data>XB</Data><Data>MZ</Data><Data>CSRQ</Data><Data>SFZH</Data><Data>ZZXZ</Data><Data>CSD</Data><Data>XP</Data></Row></Value></Item><Item><Name>InfoCodeMode</Name><Value Type="string"><Data></Data></Value></Item></Items></Method></RBSPMessage>这是c#生成的xml报文
@三人乐乐: <?xml version="1.0" encoding="UTF-8"?><RBSPMessage><Version>02</Version><SenderID>C00-00001799</SenderID><TimeStamp></TimeStamp><Validity></Validity><Security><Signature Algorithm="des"/><CheckCode Algorithm=""/><Encrypt></Encrypt></Security><Method><EndUser><UserName>闄堜寒</UserName><UserIDCard>610112197004191016</UserIDCard><UserDept>610100</UserDept><UserCertID></UserCertID></EndUser><Name>Query</Name><Items><Item><Name>DataObjectCode</Name><Value Type="string"><Data>B033</Data></Value></Item><Item><Name>Condition</Name><Value Type="string"><Data>SFZH='51302119920107343X'</Data></Value></Item><Item><Name>RequiredItems</Name><Value Type="arrayOf_string"><Row><Data>XM</Data><Data>XB</Data><Data>MZ</Data><Data>CSRQ</Data><Data>SFZH</Data><Data>ZZXZ</Data><Data>CSD</Data><Data>XP</Data></Row></Value></Item><Item><Name>InfoCodeMode</Name><Value Type="string"><Data></Data></Value></Item></Items></Method></RBSPMessage>这是delphi生成的报文 2个我都用比对工具 比对过了 除了SFZH的值不一样
博问支持 markdwon 代码高亮语法
– dudu 5年前@dudu: 用的markdown编辑的,但是出来就不是代码模式的
– 问心、 5年前@问心、: “我的博问”右侧有个“编辑器设置”
– dudu 5年前