gpt4 book ai didi

c# - 如何获取WCF 4.0 Restful响应带宽消耗?

转载 作者:行者123 更新时间:2023-11-30 17:56:39 26 4
gpt4 key购买 nike

我有一个托管在 Windows Azure 云服务上的 WCF 4.0 Restful 应用程序,我需要知道传出 HTTP 消息的大小,然后再将其发送回客户端。

我需要它,因为我想按带宽消耗向我的服务客户计费。

我有两种方法,如下所示,并且都有标识客户端的 token 参数。因此,当客户端调用任何方法时,我需要发现响应的大小并注册该客户端和方法的带宽消耗。

这样我就能够为每个客户发送发票。

请注意,响应可能以 XML/JSON 形式返回并由 Gzip 压缩。

有人可以帮我吗?

[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single, Namespace = "")]
public class ZipCodeService
{
[WebGet(UriTemplate = "/GetAddressByZipCode?token={token}&zipcode={zipcode}")]
public GetAddressByZipCodeContract GetAddressByZipCode(string zipCode, string token)
{
// ...
}

[WebGet(UriTemplate = "/GetZipCodeByAddress?token={token}&keywords={keywords}")]
public GetZipCodeByAddressContract GetZipCodeByAddress(string keywords, string token)
{
// ...
}
}

当我尝试获取http响应,但它被Gzip压缩时,内容长度 header 返回null,否则正常返回。即使响应被压缩,我怎样才能获得内容长度?无论如何,内容长度并不表示传出消息的总大小,那么如何获取传出消息的总大小?

public class Global : HttpApplication
{
protected void Application_EndRequest(object sender, EventArgs e)
{
var response = this.Response;

var str = response.Headers["Content-Length"];
}
}

任何帮助将不胜感激。

问候,

费尔南多·莫拉

最佳答案

关于c# - 如何获取WCF 4.0 Restful响应带宽消耗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com