If you want to get XML data from a different domain you will need to use a server side proxy. While you could use JSON to get around this there are times when a JSON feed may not be available and a proxy must be used.
In the past I have written posts about creating such a proxy, however all of the example code was is PHP. Well, if you are a .NET developer then you are in luck, because the CodeProject has posted a tutorial on creating a Server Side Proxy in .NET.

Below is an excerpt from the post.
A Basic Proxy Such a content proxy is also available in my open source Ajax Web Portal Dropthings.com. You can see from its code from CodePlex how such a proxy is implemented. The following is a very simple synchronous, non-streaming, blocking Proxy:
[WebMethod]
[ScriptMethod(UseHttpGet=true)]
public string GetString(string url)
{
using (WebClient client = new WebClient())
{
string response = client.DownloadString(url);
return response;
}
}
}
Although it shows the general principle, but it's no where close to a real proxy because:
- It's a synchronous proxy and thus not scalable. Every call to this
web method causes the ASP.NET thread to wait until the call to the
external URL completes.
- It's non streaming. It first downloads the entire
content on the server, storing it in a string and then uploading that
entire content to the browser. If you pass MSDN feed URL,
it will download that gigantic 220 KB RSS XML on the server and store
it on a 220 KB long string (actually double the size as .NET strings
are all Unicode string) and then write 220 KB to ASP.NET Response
buffer, consuming another 220 KB UTF8 byte array in memory. Then that
220 KB will be passed to IIS in chunks so that it can transmit it to
the browser.
- It does not produce proper response header to cache the response on the server. Nor does it deliver important headers like Content-Type from the source.
- If external URL is providing gzipped content, it decompresses
the content into a string representation and thus wastes server memory.
- It does not cache the content on the server. So, repeated
call to the same external URL within the same second or minute will
download content from the external URL and thus waste bandwidth on your
server.
So, we need an asynchronous streaming proxy that transmits
the content to the browser while it downloads from the external domain
server. So, it will download bytes from external URL in small chunks
and immediately transmit that to the browser. As a result, browser will
see a continuous transmission of bytes right after calling the web
service. There will be no delay while the content is fully downloaded
on the server.
You can read the full tutorial here.
This post not only shows you haw to make a basic server side proxy, but also shows you how to make it streaming. If you are a .NET developer looking to make a server side proxy, I recommend this post.
Recent comments
18 hours 16 min ago
1 day 9 hours ago
1 day 13 hours ago
1 day 17 hours ago
2 days 10 hours ago
3 days 21 hours ago
4 days 11 hours ago
4 days 16 hours ago
4 days 17 hours ago
4 days 18 hours ago