c++调用WebService,参数string会有长度限制吗
2个回答
2016-08-07 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
般情况下,超过10000字节,就会调用失败,但是这不是字符串长度限制造成的,而是数据量过大,造成在网络在传输时间过长,超出了webservice默认的超时设置,导致调用失败,传统的做法是,数据量过大时要对数据进行压缩,客户端进行解压。或者修改webservice的timeout为较长的时间,或者设置为无穷大。这两种办法可以同时使用。
soap本身就是被序列化的,尽量不要直接传过大的数据,可以换种方式,如内网可考虑文件形式存储给出文件路径等方式,外网分割成多个包去返回!!
soap本身就是被序列化的,尽量不要直接传过大的数据,可以换种方式,如内网可考虑文件形式存储给出文件路径等方式,外网分割成多个包去返回!!
2016-08-07 · 知道合伙人生活技巧行家
关注
展开全部
strlen和sizeof作用于string通过字符串化c_str()得出的字符串结果都是一样的。所以用strlen时通过+1使得strncpy将最后一个结尾符拷贝过去了,但是用sizeof的时候没有+1,结果就没有最后的结尾符拷贝到p里面,输出没有碰到结尾符,才会乱码。strncpy在msdn上的解释是:当函数的第三个参数小于等于第二个参数的长度时,空字串不会被加到参数一的结尾。当函数的第三个参数大于第二个参数的长度时,参数一copy完字符串后到整个空间结束全部被置为空字符。string自己提供了获取长度和容量的成员函数str1.length(); // 获取长度str1.capacity(); // 获取容量至于c_str()得到的东西到底是怎样的。看源码注释是说带有结尾字符的常量字符串,但是为什么在strlen和sizeof操作下和C语言的char数组不同这一点的确不太好解释。你再查查其他资料,如果知道原因了,顺便也告诉下我
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询