calling web service with XML output

I need to make 1000+ calls to the following web service and download the XML output that results from each call -

I am fairly new to web services, so please bear with me.

I wrote some C# code with which I can call the web service - see attached.

Now, I need to call the web service with a couple of parameters -,%208,%2024&rg=1,2&so=9999

I will need to loop through various values for  "cc" and "r".

The web service returns a XML file which I plan to import into Excel.

Can someone please help me with the code that will help me download the files?

namespace comtradedata
    class Program
        static void Main(string[] args)
            StringBuilder sbSource;

            // Create the web request  
            HttpWebRequest request
                = WebRequest.Create("") as HttpWebRequest;

            request.Proxy = WebProxy.GetDefaultProxy();         

            // Get response  
            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                // Get the response stream  
                StreamReader reader = new StreamReader(response.GetResponseStream());

                // Read it into a StringBuilder  
                sbSource = new StringBuilder(reader.ReadToEnd());

                // Console application output  

Open in new window

Who is Participating?
mayank_joshiConnect With a Mentor Commented:
add the following code after:-
 // Read it into a StringBuilder  
 sbSource = new StringBuilder(reader.ReadToEnd());

  Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
  Response.Charset = "";
  // If you want the option to open the Excel file without saving then
  // comment out the line below
  Response.ContentType = "application/vnd.xls"; 

Open in new window

I think,
You should use XML classes available in .NET (like XMLDocument, XMLTextReader) to parse the response stream in XML and then you can convert your XML in Excel.
you should also check the HttpResponse's StatusCode property to know if the response status (i.e. check for 200)
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Forget to add example code of XmlTextReader:
using System.Xml;  
// Retrieve XML document  
XmlTextReader reader = new XmlTextReader("Your WEB-SERVICE URL");  
// Skip non-significant whitespace  
reader.WhitespaceHandling = WhitespaceHandling.Significant;  
// Read nodes one at a time  
while (reader.Read())  
    // Print out info on node  
   //do some operations.

Open in new window

IUAATechAuthor Commented:
I am trying mayank_joshi's approach.

Which namespace should I use for "Response" and HttpCacheability? I already have a reference to System.Web namespace in my code.
gery128Connect With a Mentor Commented:
HttpCacheability is an enum which comes under System.Web. So you should get it if you are importing that namespace. Try full namespace name, System.Web.HttpCacheability.
Also for Response, you may be trying to use Response in demo console application you have created. Response is the property of the System.Web.UI.Page class, If you try it in ASP.NET application it will work. Response is not available in a Console Application as there is no HttpContext.
You may try WebClient class to generate request and get response in console application, but you will get response string only you won't be able to generate Excel file using System.Web.UI.Page.Response.
Check out this link:
WebClient in Console Application
Which type of application are you targeting? ASP.NET or Console Application (executable) ? If Console Application then, you need to change your approach related to Response.
IUAATechAuthor Commented:
thanks gery128 - yeah, I am targeting a console app and I got it to work. thanks.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.