Click here to Skip to main content
Click here to Skip to main content

HTTP compression in .NET Framework 2.0

By , 1 May 2007
 

Introduction

This article describes the implementation of a utility class that will allow HTTP requests informing the server (or any appliance in the network between the client and the server) what types of compression it can handle and uncompress the response from the server (if any) without changing the client application.

HTTP compression is very useful when the cost of the connection is high.

The factory pattern of creating WebRequest instances

The WebRequest supplies two methods to create instances:

The WebRequest class uses instances of classes that implement the IWebRequestCreate interface and are registered in the webRequestModules section in the configuration files. The Create method (called by both CreateDefault and Create) returns an initialized instance of a WebRequest descendent class capable of performing a standard request/response transaction for the protocol without needing any protocol-specific fields modified.

On the other hand, the previously created WebRequest derived instances will return WebResponse derived instances that will handle the HTTP response.

Because of the way the factory pattern is implemented, we can change the behavior of already built applications (our applications or even the .NET Framework) to request and handle HTTP compression, changing only the configuration files.

Since in versions 2.0 and above of the .NET framework already support compression, there is no need to supply WebRequestand WebResponse derived class implementations. All that's needed is a class that implements the IWebRequestCreate interface to create the WebRequestderived instance and set it up.

The code

As shown before, to add HTTP compression to our applications, we just have to build three classes:

CompressibleHttpRequestCreator

In order for the applications that use HttpWebRequest and HttpWebResponse to work without any changes, CompressibleHttpRequestCreator.Create has to return a HttpWebRequest instance. Unfortunately, there is no public construtor for HttpWebRequest or publicly accessible implementation of IWebRequestCreate.Create that creates a HttpWebRequest instance, so some reflection will be needed.

The implementation of IWebRequestCreate.Create just creates an instance of HttpWebRequest and sets its HttpWebRequest.AutomaticDecompression to accept all types of compression.

public class CompressibleHttpRequestCreator : IWebRequestCreate
{
    public CompressibleHttpRequestCreator()
    {
    }

    WebRequest 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.AutomaticDecompression =DecompressionMethods.GZip | 
            DecompressionMethods.Deflate;

        return httpWebRequest;
    }
}  

Configuration

Now, to add HTTP compression support to any application, all that's needed is to add the corresponding entries to the webRequestModules section in the configuration file.

<configuration>
  <system.net>
    <webRequestModules>
      <remove prefix="http:"/>
      <add prefix="http:" 
            type="Pajocomo.Net.CompressibleHttpRequestCreator, Pajocomo" />
    </webRequestModules>
  </system.net>
</configuration>

History

When I first ported this from .NET 1.1, I completely missed the fact that HttpWebRequest and HttpWebResponse already implemented compression.

Thanks to Björn to point that out to me.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Paulo Morgado
Software Developer (Senior) Paulo Morgado
Portugal Portugal

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralMy vote of 5memberLastMandg423-Jan-11 3:33 
Thanks!
GeneralYou are my hero!!!!!memberyoni at jefco22-Nov-10 11:13 
I am really ticked off at M$ for not adding built in decompression support to WCF clients , since this functionality was availably with HTTPSoapProtocol clients through the EnableDecompression property.
Your method will really come in handy with WCF clients using basicHTTPBinding. I hope!
In any case, this is an awesome tip. Thanks!
GeneralRe: You are my hero!!!!!memberPaulo Morgado22-Nov-10 13:28 
Thank you for your comments.
 
I believe decompression is allowed on .NET 4.0, but I'm not sure at this moment.
Cheers,

Paulo Morgado

Portugal - Europe's West Coast

GeneralRe: You are my hero!!!!!memberyoni at jefco23-Nov-10 4:22 
Paulo Morgado wrote:
I believe decompression is allowed on .NET 4.0, but I'm not sure at this moment.

 
It is, but for those of us who are no longer using asmx services, and are not on 4.0 yet, its a case of "jam yesterday and jam tomorrow, but never jam today".
GeneralRe: You are my hero!!!!!memberPaulo Morgado23-Nov-10 14:10 
I understand your pain. My main work is on a codebase partly in .NET 1.1 and partly on .NET 2.0 that targets .NET 2.0 (no SPs).
Cheers,

Paulo Morgado

Portugal - Europe's West Coast

Questionhow to use compressibles [modified]memberanimayhem026-Aug-10 1:56 
What I have to do to use Your CompressibleHttpWebRequest an CompressibleHttpWebResponse?
 
Usage of cerator is explained but I cant figure out how to use the others.
 
Im trying to combine Your solution with WsHttpBinding to decompress gzipped message.
 
Thanks for any help
g

modified on Thursday, August 26, 2010 8:08 AM

AnswerRe: how to use compressiblesmemberPaulo Morgado26-Aug-10 14:06 
"cerator"???
 
What version of the .NET framework are you using?
 
What exactly are you having trouble with?
Cheers,

Paulo Morgado

Portugal - Europe's West Coast

GeneralRe: how to use compressiblesmemberanimayhem026-Aug-10 21:06 
creator was for CompressibleHttpRequestCreator.
 
.net 3.5
 
im having trouble with using HhttpRequest and Response since im operation on channel from ChannelFactory.
 
If i replace http prefix (in config) to use CompressibleHttpRequestCreator, it is used, but i believe there is no way to inject Yours Compressibles to channel communication. At least i dont know how :(
GeneralRe: how to use compressiblesmemberPaulo Morgado29-Aug-10 2:39 
I've never used this with WCF, but I blieve that WCF uses HttpWebRequest/HttpWebResponse.
 
Bare in mind that this is a technic to inform the server that the client is capable of handling compressed responses.
 
Have you used Fiddler or some other tool to see if the Accept-Encoding HTTP header is being sent to the server?
Cheers,

Paulo Morgado

Portugal - Europe's West Coast

GeneralRe: how to use compressiblesmemberanimayhem029-Aug-10 4:40 
My requests are accepting encoding. I receive compressed message and there is the problem I cant find point to decompress it to read to allow read soap message.
 
In WCF I can call service with HttpWebRequest but manually constructed message is not clean solution for me. Id rather call it using channel and intercept reply to modify it. Maybe it cant be mixed that way.. :/
 
Btw thanks for support
Greg
GeneralRe: how to use compressiblesmemberPaulo Morgado31-Aug-10 13:11 
I can see that the Accept-Encoding HTTP header.
 
Is the server sending the Content-Encoding header? (I need to setup a server with compression to test this)
Cheers,

Paulo Morgado

Portugal - Europe's West Coast

GeneralRe: how to use compressiblesmemberanimayhem031-Aug-10 19:01 
Yes, message is compressed. I am using IIS server dynamic compression.
GeneralF*ing brilliantmemberGreg Olmstead17-Mar-10 7:22 
This is exactly what we needed. This way, we dont have to change the dozens of web services we have already authored, AND we can compress secured communications (e.g. wsHttpBinding) which we couldnt do with the gzip sample from MS, AND we can un-gzip it with fiddler. Thanks! Laugh | :laugh:
GeneralRe: F*ing brilliantmemberPaulo Morgado17-Mar-10 13:45 
Always glad to help.
Paulo Morgado
Portugal - Europe's West Coast

GeneralCompression not workingmemberdizzybinty29-May-09 7:45 
Hi,
 
I have tried the code and it seemed to be working, loading all the right classes etc. Then I tried a test with a webservice I have for copying files from a to b. Hoping to see how good the compression was working.
 
So I copied 685 files from between 300kb and 1.8 mb in size. For a total of 455mb. Without compression within intranet it takes just under a minute. With the compression it takes over 8 minutes and uses 1.2 gb bandwidth.... OMG | :OMG:
 
What an earth am I doing wrong...! ??
GeneralRe: Compression not workingmemberPaulo Morgado31-May-09 12:13 
That's odd.
 
Have you tried to use Fiddler (or any other tool) to see what's going on?
 
Paulo Morgado
Portugal - Europe's West Coast

GeneralGood Links for Http CompressionmemberDotNetGuts15-Jan-09 11:13 
Check out collection of good links on HTTP Compression.
 
http://dotnetguts.blogspot.com/2008/06/http-compression-improves-performance.html[^]
 
DotNetGuts
"Lets Make Programming Easy"
 
Logon to http://www.dotnetguts.blogspot.com
 
Join .Net Developer's Community http://groups.yahoo.com/group/dotnetguts/join

GeneralRe: Good Links for Http CompressionmemberPaulo Morgado15-Jan-09 12:53 
Thanks for the reference.
 
Paulo Morgado
Portugal - Europe's West Coast

GeneralRe: Using IIS7memberMatt_Izilla21-Nov-07 17:39 
When I am running my site with your adjustments, it does not seem to use the CompressibleHttpRequestCreator object to create the web request.
 
The unusual behaviour extends to the fact, if i break the code within visual studio and then use the immediate window to manually create a webrequest, then it actually does run and use the appropriate class.
 
Any assistance would be appreciated.
 
Thanks
 
Matt Thompson
General.Net 2.0 supports content encoding out-of-the-boxmemberbwaide30-Apr-07 3:28 
As far as I know with .Net 2.0 you just have to add this line, where "request" is a HttpWebRequest object:
 
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
 
Is there any other reason I might not have seen to use your solution?
 
Kind regards, Björn

GeneralRe: .Net 2.0 supports content encoding out-of-the-boxmemberPaulo Morgado1-May-07 10:49 
None, other than the fact that I missed it completely. I already submeted the correction.
 
Thanks a lot Björn.
 
Paulo Morgado
Portugal - Europe's West Coast

GeneralWarningsmembernzeemin6-Mar-07 19:51 
Thanks for the article!
 
But, compiling the code, I've got two warnings:
 
1. CompressibleHttpWebResponse.cs(20,10): warning CS0618: 'System.Net.HttpWebResponse.HttpWebResponse(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)' is obsolete: 'Serialization is obsoleted for this type. http://go.microsoft.com/fwlink/?linkid=14202'
 
2. CompressibleHttpWebRequest.cs(27,28): warning CS0618: 'System.Net.HttpWebRequest.HttpWebRequest(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)' is obsolete: 'Serialization is obsoleted for this type. http://go.microsoft.com/fwlink/?linkid=14202'
 
Of course, we can just ignore this, but is there a good way to fix it?
GeneralRe: WarningsmemberPaulo Morgado6-Mar-07 22:54 
Thanks nzeemin.
 
Unfortunatelly this was the only way I found to implement this.
 
You can add a #pragma directive to ignore this warning in this case.
 

 
Paulo Morgado
Portugal - Europe's West Coast

GeneralCompression engine that WORKS for me!memberpelam1-Mar-07 12:26 
I tried your way of compression but my WebResource.axd still included into the compression. I gave up and try blowery compression engine. You just have to follow the describe guide at http-compression-in-aspnet-20 to use it. It is a very good engine but Mads Kristensen's engine also good if it enable us to exclude the WebResource.axd compression. cheers Smile | :)
 
The world's local IT Geeks
GeneralRe: Compression engine that WORKS for me!memberPaulo Morgado1-Mar-07 12:51 
I'm sorry but I'm failing to understand your point.
 
My article is about client-side and your links point to the server-side of the problem. They are not the same thing but one needs the other.
 
Paulo Morgado
Portugal - Europe's West Coast

QuestionContentEncodingmembercaptainq24-Oct-06 15:31 
Greetings Paulo,
 
I've implemented your code and everything seems to work correctly except the ContentEncoding property from the HttpWebResponse object is returning "", not 'gzip', or 'deflate', which of course is a major problem.
 
This app is a Windows Forms program using Web Services and .NET 2.0. I've dropped in your code and modified the app.config in between the configuration tags as:






 
Fiddler is showing 'Accept-Encoding: gzip, deflate' so it seems the encoding request is being sent to the server but it's not responding as needed. Is there anything I need/can to do to the server to get it to compress properly
 
Thank you,
Ed
AnswerRe: ContentEncodingmemberPaulo Morgado24-Oct-06 22:19 
Hi Ed,
 
The way the protocol works is by the client announcing to the server what encondings it accepts. If the server is capable of using one of them, it encondes the response and adds the respective Content-Encoding HTTP header.
 
IIS 6.0 is capable of handling this, but lower version aren't.
 
For IIS 5.x, you can add an HTTP module to your ASP.NET application to handle compression. Here is an example of one implementation: http://www.blowery.org/code/HttpCompressionModule.html.
 
You can, also, use Fiddler to emulate server side compression.
 
Paulo Morgado
Portugal - Europe's West Coast

GeneralRe: ContentEncodingmembercaptainq5-Nov-06 2:55 
Hi Paulo,
 
Well, we've finally found the time to move this app to IIS 6.0 and that's when I found that compression still wasn't working.
 
I've enabled HTTP Compression in Web Site Properties from IIS Manager for IIS 6.0 and can't find any other properties to set.
 
This app uses XML data objects (soap) passed from a Winforms client to a webservice dll now on Server 2003. Do you know if there is anything further I can do to get it working in our environment? We appreciate your article and consideration.
 
Thank you,
Ed
GeneralRe: ContentEncodingmemberPaulo Morgado5-Nov-06 4:36 
Have you checked with Fiddler if the rigth HTTP headers are being sent?
 
You should be aware that this is a server side compression only protocol and, ASMX being a dynanlic content needs compression explicitly enabled on IIS6.
 
If you need to send compressed data to your web server, you need to code your web service to handle that (or your WCF binding).
 
There are also issues with this on .NET 1.1. I wonder if they affect .NET 2.0.
 
Paulo Morgado
Portugal - Europe's West Coast

GeneralRe: ContentEncodingmembercaptainq5-Nov-06 8:50 
Of course you're right about the dynamic content in IIS 6.0. I followed the instructions here:
 
http://www.wwwcoder.com/main/parentid/170/site/3669/68/default.aspx
 
and everything is working fine. Thank you Paulo.
GeneralSystem.Runtime.Serialization.dllmemberJntn14-May-06 7:53 
can't compile the code including the given classes since I miss the System.Runtime.Serialization reference.
 
and it's no where to be found.
 
any suggestions?...
 
thanks
GeneralRe: System.Runtime.Serialization.dllmemberPaulo Morgado14-May-06 10:31 
You can find it int he framework directory (usually, C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727).
 
I don't believe my code needs it, though.
 
Paulo Morgado
Portugal - Europe's West Coast
GeneralRe: System.Runtime.Serialization.dllmemberJntn14-May-06 22:22 
well, I got to the problem: I'm developing for a device, and the Compact Framework does not contain the System.Runtime.Serialization library, so I can't use your methods.
is there ant way of using another serialization method maybe to get the sae result with CF?
and yet another question - does your compression work on IIS 5.1? is it IIS dependant? cause for now I'm using the IIS 6.0 compression (gzip), but I need to be able to do the same via IIS 5.1, which does not support http compression.
 
Thanks
GeneralRe: System.Runtime.Serialization.dllmemberPaulo Morgado14-May-06 23:39 
Well, I've never developed for the Compact Framework, so I don't have a feeling for what's there and what's not.
 
This classes I've developed are not server dependent and can be used to replace HttpWebRequest and HttpWebResponse for the desired addresses just by adding some elements to the application's configuration file.
 
In your case, you'll need to develop a new set of classes (probably derived from WebRequest/WebResponse instead of HttpWebRequest/HttpWebResponse) and bind your applications to them. You'll find several examples of that around the internet.
 
The way this works is announcing to the server that the client is accepting GZIP and DEFLATE compression methods and it can send a response using that compression methods.
 
For IIS 5.x, you can add an HTTP module to your ASP.NET application to handle compression. Here is an example of one implementation: http://www.blowery.org/code/HttpCompressionModule.html.
 
Paulo Morgado
Portugal - Europe's West Coast
Generalweb service specific exceptionmemberPetr Melichar22-Apr-06 2:03 
I implement your solution and I can not now handle web specific exception.
 
when I implement your solution the code crash with The remote server returned an error: (500) Internal Server Error, in method base.GetResponse() in this code in CompressibleHttpReques.
can somebody help?
 
Petr M.
 

public override WebResponse GetResponse()
{
BeforeGetResponse();

return AfterGetResponse(base.GetResponse() as ISerializable);

}
GeneralRe: web service specific exceptionmemberPaulo Morgado14-May-06 10:20 
If the server returned an error 500 there should be an exception thrown.
 
Am I missing something?
 
Paulo Morgado
Portugal - Europe's West Coast
AnswerRe: web service specific exceptionmemberrealmaestro3-Apr-07 15:48 


public override WebResponse GetResponse()
{
try
{
BeforeGetResponse();
return AfterGetResponse(base.GetResponse() as ISerializable);
} catch (WebException webEx)
{
throw new WebException(webEx.Message, webEx.InnerException, webEx.Status, AfterGetResponse(webEx.Response));
}
}
 
...
 
public override WebResponse EndGetResponse(IAsyncResult asyncResult)
{
try
{
return AfterGetResponse(base.EndGetResponse(asyncResult) as ISerializable);
} catch (WebException webEx)
{
throw new WebException(webEx.Message, webEx.InnerException, webEx.Status, AfterGetResponse(webEx.Response));
}
}

 
Modifying the above methods in CompressibleHttpWebRequest allows for SOAP exceptions to be read correctly. This is because when an HTTP error is thrown, the WebException.Response property contains the error stream, which needs to be turned into the CompressibleHttpWebResponse stream for any compressed stream to be read. SOAP exceptions / reading HTTP error streams will now work correctly.
GeneralRe: web service specific exceptionmemberPaulo Morgado3-Apr-07 21:59 
Thanks!
 
Paulo Morgado
Portugal - Europe's West Coast

QuestionImport problemmemberTommyB811-Mar-06 4:09 
I cant get it working :/
 
I have compiled it into a dll and put it in ~/Bin and I had set up the web.config like described above but nothing happens, all works as like as without this (checked with ethereal and fiddler)...
 
But the Type seems to be correctly; if i execute type.gettype with it out of my web, I get the correct type out of the .dll.
 
Are there some things to know, such as needed security privileges?
Is it possible to add this libary from source-side (global.asax)?
 
Thanks for all
 
Sorry for my english Smile | :)
AnswerRe: Import problemmemberPaulo Morgado12-Mar-06 1:07 
Using Ethereal and Fiddler, did you check if the Accept-Encoding is being sent?
 
You could set breakpoints in CompressibleHttpRequestCreator.Create, CompressibleHttpWebRequest.BeforeGetResponse, CompressibleHttpWebRequest.AfterGetResponse and CompressibleHttpWebResponse.GetResponseStream to see what's going on.
 
To make sure the right classes are instantiated, you can, also, create the WebRequest instance like this:
 
IWebRequestCreate webRequestCreate = new CompressibleHttpRequestCreator();
WebRequest webRequest = webRequestCreate.Create(uri);
WebResponse webResponse = webRequest.GetResponse();
 
You can register a IWebRequestCreate descendant for a spceified prefix in code using WebRequest.RegisterPrefix, but you can't override the definitions for HTTP and HTTPS. And you would end up with your code tightly coupled with these classes. This is the sort of thing you want plugguble.
 
Paulo Morgado
Portugal - Europe's West Coast
GeneralRe: Import problemmemberTommyB812-Mar-06 1:24 
Well thats my problem. The headers are sent successfully and they arrive in asp.net, too. If I debug this dll and set breakpoints, they never reached.
 
It seems asp.net ignores the settings in web.config, because i can type in every class- and assemblynames, even they exists or not, it wont throw an error (like 'assembly not found')
 
I have tried to put in the sources (converted to vb) in my web project, too but with the same reason. No error, no compression and without reaching breakpoints... Cry | :((
 
I tried on IIS5.1 (XP Pro) and IIS6 (WinSrv2003), its all the same :/
 
Sorry for my englich Smile | :)
GeneralRe: Import problemmemberPaulo Morgado12-Mar-06 2:01 
If you added the code to your sources (no need to convert to vb with 2.0) you can step into the code with this:
 
IWebRequestCreate webRequestCreate = new CompressibleHttpRequestCreator();
WebRequest webRequest = webRequestCreate.Create(uri);
WebResponse webResponse = webRequest.GetResponse();
 
Fiddler, in the Rules menu has a Simulate GZIP Compression. Have you tried it.
 
If the Accept-Encoding header are being sent, it's because CompressibleHttpWebRequest.BeforeGetResponse is being executed.

 
Paulo Morgado
Portugal - Europe's West Coast
GeneralRe: Import problemmemberTommyB812-Mar-06 2:30 
Converting: I dont now that before, thanks for that Big Grin | :-D
And yes, I tried the gzip simulating in Fiddler and it works fine.
 
Something happens: If I try your code below or the handler, you provided earlier to someone else, asp.net throws me an error 'Could not find assembly'. I corrected it and now it seems to work for outgiong requests. (runs on timeout or http500 on serverside mostly, i try more with it Smile | :) )
 
Does this code only work for outgoing http-requests? 0.o I have thought, everyone (that can extract it) receive my web compressed ?
 

But many thanks for your support yet
GeneralRe: Import problemmemberPaulo Morgado12-Mar-06 6:37 
This code is only for outgoing requests and the server needs to understand the Accept-Encoding header.
 
If you are looking for the same thing for the server side (handling incoming requests) you can try this HTTP Compression Module. With this, you can set breakpoint on the server side code and check what's going on.
 
Paulo Morgado
Portugal - Europe's West Coast
AnswerRe: Import problemmemberTommyB812-Mar-06 6:44 
ok, it seems I have mistranslated the description...
 
But many thanks for your support Smile | :)
QuestionHelp - How to do?memberRSArockiam6-Feb-06 20:44 
I tried this code into my web application - web dev express, nothing change.
I added following code into web.config and i put the files(downloaded) into the app_code -> HttpCompression directory. But i didn't see any difference in the response header.




<!--

-->


 
Even if i change the Pajocomo.Net.CompressibleHttpRequestCreator into something like abc in the web.config file it doesn't affect and doesn't get any error in the web application.
Whats wrong? I didn't change the downloaded source files.
Please help me.
 
Regards
R.Arockiapathinathan
AnswerRe: Help - How to do?memberPaulo Morgado7-Feb-06 0:11 
Have you set breakpoints to see if the code is being executed?
 
What is the running type of the WebRequest instance returned by WebRequest.Create?
 
Aren't you missing the assembly name in your config?

 
Paulo Morgado
Portugal - Europe's West Coast
GeneralRe: Help - How to do?memberRSArockiam7-Feb-06 1:52 
Thanks for reply.
 
<configuration>
<system.net>
<webRequestModules>
<remove prefix="http:"/>
<add prefix="http:"
type="Pajocomo.Net.CompressibleHttpRequestCreator" />
</webRequestModules>
</system.net>
</configuration>

 
This is my configuration in web.config file. I am using web dev express. So i couldn't compile to get assembly. Thats why, i put the source code files under App_Code directory.
 
I set breakpoint in CompressibleHttpRequestCreator.cs file's WebRequest IWebRequestCreate.Create(Uri uri) , but cursor didn't come there.
 
All 5 Source files are under App_Code->HttpCompression directory.
 
I didn't find any related detailed articles (about this webrequestmodules) from msdn as well as google search ...
So related links are also welcome ....
 
Thanks in advance.
 
Regards
R.Arockiapathinathan
GeneralRe: Help - How to do?memberPaulo Morgado7-Feb-06 12:11 
You should, at least be getting an exception.
 
Try something like this:
 
<configuration>
<system.net>
<webRequestModules>
<remove prefix="http:"/>
<add prefix="http:"
type="Pajocomo.Net.CompressibleHttpRequestCreator, App_Code" />
</webRequestModules>
</system.net>
</configuration>
 
The webRequestModules config section is very hard to find either in 1.1 or 2.0 documentation. And, to be in sync with MSDN, the same happens in my article. Just lok for the webRequestModules in the text and you will find that that's a link to the documentation.
 
Paulo Morgado
Portugal - Europe's West Coast
GeneralRe: Help - How to do?memberRSArockiam7-Feb-06 18:39 
No improvement, Still same thing ......
 
I couldn't understand the webrequestmodule element.
 
Can you send me the sample project(full executable version)?
May be, that will help to understand.
 
my email id - rsarockiam@gmail.com
 
I appreciate your help to solve this problem.
 
Thanks in Advance

 
Regards
R.Arockiapathinathan

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130617.1 | Last Updated 1 May 2007
Article Copyright 2006 by Paulo Morgado
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid