Chr*_*her 8 c# client web-services http soaphttpclientprotocol
我使用的是VS2008 .Net 3.5中生成的传统C#Web服务客户端,继承自SoapHttpClientProtocol.这是连接到用Java编写的远程Web服务.
在客户端初始化期间,所有配置都在代码中完成,如下所示:
ServicePointManager.Expect100Continue = false;
ServicePointManager.DefaultConnectionLimit = 10;
var client = new APIService
{
EnableDecompression = true,
Url = _url + "?guid=" + Guid.NewGuid(),
Credentials = new NetworkCredential(user, password, null),
PreAuthenticate = true,
Timeout = 5000 // 5 sec
};
Run Code Online (Sandbox Code Playgroud)
一切正常,但执行最简单的方法调用所花费的时间几乎是网络ping时间的两倍.而Java测试客户端与网络ping时间大致相同:
C# client ~ 550ms
Java client ~ 340ms
Network ping ~ 300ms
Run Code Online (Sandbox Code Playgroud)
在分析会话的TCP流量后发现以下内容:
基本上,C#客户端按以下顺序发送TCP数据包.
Client Send HTTP Headers in one packet.
Client Waits For TCP ACK from server.
Client Sends HTTP Body in one packet.
Client Waits For TCP ACK from server.
Run Code Online (Sandbox Code Playgroud)
Java客户端按以下顺序发送TCP数据包.
Client Sends HTTP Headers in one packet.
Client Sends HTTP Body in one packet.
Client Revieves ACK for first packet.
Client Revieves ACK for second packet.
Client Revieves ACK for second packet.
Run Code Online (Sandbox Code Playgroud)
无论如何,配置C#Web服务客户端以便在Java客户端出现时并行发送头/主体?
任何帮助或指针非常感谢.
| 归档时间: |
|
| 查看次数: |
1816 次 |
| 最近记录: |