I have heard that it might be possible to compress the returned data from a web method call. The web method returns a string, which my client application then uses to generate an xml document.
Here is a code snippet.
[WebMethod]
public string GetRegions()
{
// Create a new string builder for which the XmlWriter will append to.
StringBuilder output = new StringBuilder();
// Create XmlWriter settings
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = " ";
// Use an XmlWriter and a StringBuilder for outputting the xml.
using (XmlWriter writer = XmlWriter.Create(output, settings))
{
writer.WriteStartDocument();
writer.WriteStartElement("MyData");
writer.WriteStartElement("Regions");
// Get all selectable regions
RegionList regionList = RegionList.GetSelectable();
// Loop through every region
foreach(Region region in regionList.GetList())
{
writer.WriteStartElement("Region");
writer.WriteElementString("RegionId", region.regionID.ToString());
writer.WriteElementString("Code", region.code);
writer.WriteElementString("Name", region.name);
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
}
// Return the xml as a string
return output.ToString();
}
I've heard about adding something to the request headers e.g. "Accept-Encoding : gzip" but I am not sure how to get this to work. Does anyone know of a solution to my problem?
Thanks in advance.