IIS7.5 üzerinde barındırılan bir .NET 3.5 Web hizmeti var.WCF WebService'de GZip sıkıştırması
Bu web servisine bağlanan bir istemci uygulamasına sahibim.
ben GZip için automaticDecompression eklemek için httpWebRequest.Create yöntemi (istemci uygulamasında) değişti ama istek doğru gönderilen Bu şekildeWebRequest IWebRequestCreate.Create(Uri uri)
{
HttpWebRequest httpWebRequest =
Activator.CreateInstance(
typeof(HttpWebRequest),
BindingFlags.CreateInstance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance,
null,
new object[] { uri, null },
null) as HttpWebRequest;
if (httpWebRequest == null)
return null;
httpWebRequest.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
httpWebRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
return httpWebRequest;
}
çalışmıyor, cevap (gzip içinde kodlanmıştır I) Fiddler'dan görüyorum ama bir istisna oluşur:
Response is not wellformed XML
(ben gibi bu satırı kaldırırsanız istemci cevap)
deşifre etmez düşünüyorum MSDN belgelerine
httpWebRequest.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
cevap GZip kodlanmış değildir (ve istek hiçbir orada ettiği kodlama oluyor başlığı)
satırını da ekleyin. GZip sıkıştırmasını özel kodlama yoluyla uygulamak için bir yol yoktur. –
Yeh .. tamam .. ve WZF web servislerinde GZip sıkıştırmasını nasıl kullanabilirim? Çünkü çok fazla metin veri aktarmam gerekiyor .. – AndreaCi
Bu acı süreci yaklaşık 2-3 yıl geriye gittim. Bulduğum çözümü bulmaya çalıştım, ama şimdiye kadar hiç şans yoktu. Bu arada +1. – leppie