soap webservice使用方法时直接超时

soap中soap_wsse_add_UsernameTokenDigest使用问题
我现在开发onvif代码,使用到soap_wsse_add_UsernameTokenDigest函数,谁能告诉我这个函数在那个库中?
我只看到wsseapi.h和wsseapi.c中.但是没有库文件啊.....
wsseapi.c文件,但是又出现其他错误
20:08&&&[]
使用范围?
回复讨论(解决方案)
webservice
SOAP也被称作XMLP,为两个程序交换信息提供了一种标准的工作机制。在各类机构之间通过电子方式相互协作的情况下完全有必要为此制定相应的标准。&
  交换信息可以采用很多方
19:27&&&[]
14:55&&&[]
用 composer 安装生成 WSDL 所需的库 composer require piotrooo/wsdl-creator 实现用于外部访问的入口文件,代码示例请参考(其中方法名和参数中出现的 Notify 对应一个类名,该类的方法将成为可以通过 SOAP 调用的外部接口): &lt
10:18&&&[]
我通过axis手工创建SOAP消息的时候,发现每一个节点都带&xmlns=&&&&这么一个东西在里面,有谁有什么办法把这个去掉吗?是不是我的程序有什么问题??这样发送到服务端会不会有什么不兼容的问题呢??大虾们请帮忙哈
02:11&&&[]
但生成的xml中
&wsse:Security&xmlns:soap=&soap&&xmlns:wsse=&http://docs.oasis-open.org/wss/2004/01
16:05&&&[]
大大们,brew中怎么进行webservice的访问?有现成的接口吗?之前在wince上soap的生成和调用都是蛮清晰地,不知道brew上是否有相关的接口?
另:按理来说,采用gsoap的开源包也是可以实现的啊。有用过的不?
回复讨论(解决方案)
brew只有IWeb接口是http协议
17:22&&&[]
如果要将一个二进制文件作为附件绑定在soap中,在.net框架下如何建立webservice,急!谢谢!
回复讨论(解决方案)
you&ca&&do&&it&use&base64,you&also&nbsp
-12:27&&&[]
应该是压缩数据流了,有谁做过,在vb6里
回复讨论(解决方案)
各位大虾,这可是我今年问的第一个问题阿,不会没人研究过吧
分不够还可以加阿
呵呵,真没研究过^0^
有人研究过控制soap的超时时间吗?
没办法,结铁鸟
17:57&&&[]
1、&soap包中&soap&和&soap-env&有何区别?
2、.net中web服务生成的包如何从&soap&转换到&soap-env&?
如:我用.net做的web服务是
&soap:Envelope&xmlns
-10:51&&&[]
我自己写了个简单的WEBSERVICE/SOAP程序,在客户端调用,第一次能成功,第2次就返回错误,必须把IIS重新启动才行,是什么原因造成的?
回复讨论(解决方案)
真的嘛?那就有点奇怪了。
我用Debugger的,比较方便。
我的QQ群:
讨论WS的。有空
00:20&&&[]
我机器安装了win2000&+&SP4&在安装SOAP&Toolkit&3.0时报错。
在另一机器上安装了win2000&+&sp3&在安装SOAP&Toolkit&3.0时就没问题了。
23:36&&&[]leizhimin 的BLOG
用户名:leizhimin
文章数:638
评论数:2526
注册日期:
阅读量:4601
阅读量:2749
阅读量:3600
51CTO推荐博文
13628人学习
Axis2调用超时Read timed out的解决办法一则
Axis2不是个省油的灯,用起来一直不爽,现在项目快结束了,用着玩意想吐!
我是用服务端+客户端存根来使用Axis2的,在存根调用了服务上一个比较耗时的操作时,超时挂了。
首先我就开始在应用服务器JBOSS上到处修改超时时间为600*1000毫秒(10分钟)。可测试时候还继续超时。
查看网上,有很多人也遇到我一样的问题,都是增大超时时间,可是在jboss上设置没用啊!
最终通过设置存根每个方法的超时时间来解决。虽然很低级,但这样问题却解决了。
异常时堆栈信息如下:
14:02:52,582 INFO&&&&[STDOUT]
14:02:52&&&&- INFO&&&&org.apache.axis2.transport.http.HTTPSender&&&&&&&& - Unable to sendViaPost to url[http://192.168.50.170:80/ccmweb/services/ccmws.ccmwsHttpSoap12Endpoint] java.net.SocketTimeoutException: Read timed out &&at java.net.SocketInputStream.socketRead0(Native Method) &&at java.net.SocketInputStream.read(SocketInputStream.java:129) &&at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) &&at java.io.BufferedInputStream.read(BufferedInputStream.java:235) &&at mons.httpclient.HttpParser.readRawLine(HttpParser.java:78) &&at mons.httpclient.HttpParser.readLine(HttpParser.java:106) &&at mons.httpclient.HttpConnection.readLine(HttpConnection.java:1116) &&at mons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413) &&at mons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973) &&at mons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735) &&at mons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098) &&at mons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) &&at mons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) &&at mons.httpclient.HttpClient.executeMethod(HttpClient.java:397) &&at mons.httpclient.HttpClient.executeMethod(HttpClient.java:346) &&at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:542) &&at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:189) &&at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75) &&at org.apache.axis2.monsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:364) &&at org.apache.axis2.monsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:208) &&at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448) &&at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:401) &&at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228) &&at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163) &&at zzvcom.cms.ccm.wsclient.ccmws.CcmwsStub.genProgramPutInfoList(CcmwsStub.java:828) &&at zzvcom.cms.ccm.wsclient.CcmWSClient.genProgramPutInfoList(CcmWSClient.java:286) &&at zzvcom.cms.ccm.service.impl.ProgramServiceImpl.getWaitingProgramInfo(ProgramServiceImpl.java:1125) &&at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) &&at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) &&at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) &&at java.lang.reflect.Method.invoke(Method.java:585) &&at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304) &&at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) &&at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) &&at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) &&at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) &&at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) &&at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) &&at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) &&at $Proxy66.getWaitingProgramInfo(Unknown Source) &&at zzvcom.cms.ccm.action.ProgramAction.stockProgram(ProgramAction.java:2026) &&at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) &&at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) &&at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) &&at java.lang.reflect.Method.invoke(Method.java:585) &&at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) &&at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) &&at zzvcom.cms.sys.authen.web.AuthFilterForCas.doFilter(AuthFilterForCas.java:128) &&at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) &&at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) &&at edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:87) &&at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) &&at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) &&at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:78) &&at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) &&at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) &&at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) &&at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) &&at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) &&at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) &&at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) &&at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) &&at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) &&at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) &&at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) &&at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) &&at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) &&at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241) &&at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) &&at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580) &&at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) &&at java.lang.Thread.run(Thread.java:595) Caused by: java.net.SocketTimeoutException: Read timed out &&at java.net.SocketInputStream.socketRead0(Native Method) &&at java.net.SocketInputStream.read(SocketInputStream.java:129) &&at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) &&at java.io.BufferedInputStream.read(BufferedInputStream.java:235) &&at mons.httpclient.HttpParser.readRawLine(HttpParser.java:78) &&at mons.httpclient.HttpParser.readLine(HttpParser.java:106) &&at mons.httpclient.HttpConnection.readLine(HttpConnection.java:1116) &&at mons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413) &&at mons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973) &&at mons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735) &&at mons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098) &&at mons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) &&at mons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) &&at mons.httpclient.HttpClient.executeMethod(HttpClient.java:397) &&at mons.httpclient.HttpClient.executeMethod(HttpClient.java:346) &&at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:542) &&at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.
解决办法:
在存根业务调用代码中进行设置,添加:_operationClient.getOptions().setTimeOutInMilliSeconds(600000L);_operationClient表示一个客户端对象。
这个设置很不合理,但是没办法了,暂时先解决了问题再研究去。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
18:33:40 10:35:36 16:22:28PHP cURL超时设置 - PHP园地
您的位置: >>
>> PHP cURL超时设置
一般我们访问HTTP方式很多,主要是:curl, socket, file_get_contents() 等方法。
如果碰到对方服务器一直没有响应的时候,我们就悲剧了,很容易把整个服务器搞死,所以在访问http的时候也需要考虑超时的问题。
一、CURL 访问HTTP
CURL 是我们常用的一种比较靠谱的访问HTTP协议接口的lib库,性能高,还有一些并发支持的功能等。
curl_setopt($ch, opt) 可以设置一些超时的设置,主要包括:
*(重要) CURLOPT_TIMEOUT 设置cURL允许执行的最长秒数。
*(重要) CURLOPT_TIMEOUT_MS 设置cURL允许执行的最长毫秒数。
(在cURL 7.16.2中被加入。从PHP 5.2.3起可使用)
CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为0,则无限等待。
CURLOPT_CONNECTTIMEOUT_MS 尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。
(在cURL 7.16.2中被加入。从PHP 5.2.3开始可用)
CURLOPT_DNS_CACHE_TIMEOUT 设置在内存中保存DNS信息的时间,默认为120秒。
curl普通秒级超时:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT,60);
//只需要设置一个秒的数量就可以
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);
curl普通秒级超时使用:
curl_setopt($ch, CURLOPT_TIMEOUT,60);
curl如果需要进行毫秒超时,需要增加:
curl_easy_setopt(curl, CURLOPT_NOSIGNAL,1L);
//或者是:
curl_setopt ( $ch, CURLOPT_NOSIGNAL,true);//是可以支持毫秒级别超时设置的
curl一个毫秒级超时的例子:
if(!isset($_GET['foo'])){
$ch = curl_init('/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_NOSIGNAL,1);
//注意,毫秒超时一定要设置这个
curl_setopt($ch, CURLOPT_TIMEOUT_MS,200); //超时毫秒,cURL 7.16.2中被加入。从PHP 5.2.3起可使用
$data = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
curl_close($ch);
if($curl_errno &0){
echo "cURL Error ($curl_errno): $curl_error\n";
echo "Data received: $data\n";
sleep(10);
echo "Done.";
其他一些技巧:
1. 按照经验总结是:cURL 版本 &= libcurl/7.21.0 版本,毫秒级超时是一定生效的,切记。
2. curl_multi的毫秒级超时也有问题。。单次访问是支持ms级超时的,curl_multi并行调多个会不准
二、流处理方式访问HTTP
除了curl,我们还经常自己使用fsockopen、或者是file操作函数来进行HTTP协议的处理,所以,我们对这块的超时处理也是必须的。
一般连接超时可以直接设置,但是流读取超时需要单独处理。
$tmCurrent = gettimeofday();
$intUSGone =($tmCurrent['sec']- $tmStart['sec'])*1000000
+($tmCurrent['usec']- $tmStart['usec']);
if($intUSGone & $this-&_intReadTimeoutUS){
或者使用内置流处理函数 stream_set_timeout() 和 stream_get_meta_data() 处理:
// Timeout in seconds
$timeout =5;
$fp = fsockopen("",80, $errno, $errstr, $timeout);if($fp){
fwrite($fp,"GET / HTTP/1.0\r\n");
fwrite($fp,"Host: \r\n");
fwrite($fp,"Connection: Close\r\n\r\n");
stream_set_blocking($fp,true);
//重要,设置为非阻塞模式
stream_set_timeout($fp,$timeout);
//设置超时
$info = stream_get_meta_data($fp);
while((!feof($fp))&&(!$info['timed_out'])){
$data .= fgets($fp,4096);
$info = stream_get_meta_data($fp);
if($info['timed_out']){
echo "Connection Timed Out!";
file_get_contents 超时:
$timeout = array(
'http'=& array(
'timeout'=&5//设置一个超时时间,单位为秒
$ctx = stream_context_create($timeout);
$text = file_get_contents("/",0, $ctx);
fopen 超时:
$timeout = array(
'http' =& array(
'timeout' =& 5 //设置一个超时时间,单位为秒
$ctx = stream_context_create($timeout);
if ($fp = fopen("/", "r", false, $ctx)) {
while( $c = fread($fp, 8192)) {
fclose($fp);
猜您喜欢?您好 我想问一下 php如何设置soap通信时间 比如我判断是否五秒内通信成功?应该怎么写?_百度知道
您好 我想问一下 php如何设置soap通信时间 比如我判断是否五秒内通信成功?应该怎么写?
我看你好像前面问过一个问题 是说怎么判断程序走了5秒是吧;default_socket_timeout'&#47.你可能理解错了 你在new soapclent之前
只要 设置超时时间就可以了, 5);&#47.ini_set('呵呵
然后呢?我想要判断如果超过5秒 就走别的方式呢?
不是抛出。。是继续执行
不太明白你的意思了.
php的 finally关键字又国人提出,已经投票通过,估计后续版本会有了
其他类似问题
soap的相关知识
按默认排序
其他1条回答
看看有返回值不就是成功了?
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁3189人阅读
gSOAP&源码分析一
一&消息结构
SOAP消息包括以下元素
必需的&元素,可把此&文档标识为一条&消息,XML文件的顶层元素,代表该文件为消息
可选的&元素,包含头部信息
必需的&元素,包含所有的调用和响应信息
可选的&元素,提供有关在处理此消息所发生错误的信息
可选的,主要用于传递附件,扩展的消息
Envelope是消息中的根节点,是消息中必需的部分;是消息中可选部分,如果消息中含有它,那么它一定要是中的第一个元素节点;是中必需部分,如果消息中没,那么必须是中第一个元素节点。
在默认生成的代码中关于元素定义
/*&SOAP&Header:&*/
struct&SOAP_ENV__Header
#ifdef&WITH_NOEMPTYSTRUCT
char& /*&dummy&member&to&enable&compilation&*/
下图为消息的结构
&faultcode&供识别故障的代码
&faultstring&这里的错误是为人设定的,让人读懂,而不是为程序处理设定的。
&faultactor&有关是谁引发故障的信息
&detail&Body元素中的内容不能被成功地处理的时候,它就出现了。
代码中fault结构体如下
struct&SOAP_ENV__Fault
char&* /*&optional&element&of&type&xsd:QName&*/
/*&optional&element&of&type&xsd:string&*/
char&* /*&optional&element&of&type&xsd:string&*/
struct&SOAP_ENV__Detail&*
/*&optional&element&of&type&SOAP-ENV:Detail&*/
struct&SOAP_ENV__Code&*SOAP_ENV__C
/*&optional&element&of&type&SOAP-ENV:Code&*/
struct&SOAP_ENV__Reason&*SOAP_ENV__R
/*&optional&element&of&type&SOAP-ENV:Reason&*/
char&*SOAP_ENV__N
/*&optional&element&of&type&xsd:string&*/
char&*SOAP_ENV__R
/*&optional&element&of&type&xsd:string&*/
struct&SOAP_ENV__Detail&*SOAP_ENV__D
/*&optional&element&of&type&SOAP-ENV:Detail&*/
Fault是的一个子元素主要用于用于报告错误。
SOAP命名空间
SOAP_NMAC&struct&Namespace&namespaces[]&=
{&SOAP-ENV&,&&http://schemas.xmlsoap.org/soap/envelope/&,&&http://www.w3.org/*/soap-envelope&,&NULL},
{&SOAP-ENC&,&&http://schemas.xmlsoap.org/soap/encoding/&,&&http://www.w3.org/*/soap-encoding&,&NULL},
{&xsi&,&&http://www.w3.org/2001/XMLSchema-instance&,&&http://www.w3.org/*/XMLSchema-instance&,&NULL},
{&xsd&,&&http://www.w3.org/2001/XMLSchema&,&&http://www.w3.org/*/XMLSchema&,&NULL},
{&ns&,&&urn:calc&,&NULL,&NULL},
{NULL,&NULL,&NULL,&NULL}
这里的URL并不是指向文件,而只是一个名字。如果一个应用程序接收了一个消息,而该消息的元素使用和上述不同的名称空间,则该应用程序就将其视为版本错误并忽略该消息。
二&gSOAP&Keep-Alive和超时管理
gSOAP是绑定Http协议来对xml数据进行传输,一个SOAP请求实际上就是一个HTTP&POST请求。
消息从发送方到接受方方是单向传送,即以请求/应答的方式实现的。这也就是为什么生成的xml文件都是req,res成对出现的
gSOAP运行环境实例是一个struct&soap类型的变量,struct&SOAP_STD_API&soap
&gSOAP支持HTTP&Keep-Alive,生成代码中默认没有使用Keep-Alive
calcService_init(SOAP_IO_DEFAULT,&SOAP_IO_DEFAULT);
如果参数更改SOAP_IO_KEEPALIVE将使用Keep-Alive,默认最大连接100
以下代码在soap结构体中
&&short&tcp_keep_
/*&enable&SO_KEEPALIVE&*/
&&unsigned&int&tcp_keep_&
/*&set&TCP_KEEPIDLE&*/
&&unsigned&int&tcp_keep_&
/*&set&TCP_KEEPINTVL&*/
&&unsigned&int&tcp_keep_&
/*&set&TCP_KEEPCNT&*/
&&unsigned&int&max_keep_&&/*&maximum&keep-alive&session&(default=100)&*/
TCP_KEEPIDLE&&空闲多久开始发送keepalive包
TCP_KEEPCNT&总共发送多少个
TCP_KEEPINTVL&每两个keepalive包的发送时间间隔
这种非阻塞管理需要设置超时时间
接收超时时间
发送超时时间
连接超时时间
接受请求超时时间
代码如下,这也是soap结构体的一部分
int&recv_/*&when&&&0,&gives&socket&recv&timeout&in&seconds,&&&0&in&usec&*/
int&send_/*&when&&&0,&gives&socket&send&timeout&in&seconds,&&&0&in&usec&*/
int&connect_/*&when&&&0,&gives&socket&connect()&timeout&in&seconds,&&&0&in&usec&*/
int&accept_/*&when&&&0,&gives&socket&accept()&timeout&in&seconds,&&&0&in&usec&*/
正值以秒为单位。负值以微秒为单位。
三&提高速度技巧
1&通过更改在stdsoap2.h文件中SOAP_BUFLEN宏,增加缓存大小
2&如果客户端需要多次连接相同的服务器,那么客户端使用HTTP&keep-alive。服务端也要支持HTTP&keep-alive,这样能够最大的增强服务端和客户端的性能。
3&使用HTTP分块传输
4&不要使用gzip压缩
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:233876次
积分:3814
积分:3814
排名:第3060名
原创:142篇
评论:72条
(1)(9)(2)(2)(5)(3)(1)(1)(1)(3)(2)(1)(2)(1)(2)(5)(4)(1)(2)(1)(8)(1)(1)(3)(1)(7)(2)(1)(1)(2)(3)(3)(5)(8)(2)(2)(5)(6)(3)(8)(17)(2)(2)(1)

我要回帖

更多关于 soap协议 的文章

 

随机推荐