Sending data to other web-app

C

Christina N

What is the easiest way to make an ASP.Net application send data to another
web-app? For instance I would like APP3 to log user stats from APP1 and
APP2. The applications are located on different IIS servers.

Put in another way, can I send a datastring to another web-app without
having the IE client expecting a post back from that server?

Best regards,
Christina
 
S

Shiva

One option is to use HttpWebRequest to manually post the data to the logging
app.

What is the easiest way to make an ASP.Net application send data to another
web-app? For instance I would like APP3 to log user stats from APP1 and
APP2. The applications are located on different IIS servers.

Put in another way, can I send a datastring to another web-app without
having the IE client expecting a post back from that server?

Best regards,
Christina
 
S

Sayed Hashimi

Christina,

Here is a code snippet that shows how to use HttpWebRequest to call
your App3.

// From APP1 or APP2
-----------------------------------------------------------------------------------------------------
string strData = "data=call-from-app2";

HttpWebRequest httpWebRequest=httpWebRequest =
(HttpWebRequest)WebRequest.Create("App3URL");
// call with a POST
httpWebRequest.Method = "POST";

// POST name-value pairs
String contentType = "application/x-www-form-urlencoded";
httpWebRequest.ContentType = contentType;
// write to the request stream
byte[] data = new ASCIIEncoding().GetBytes(strData);
Stream reqStream = httpWebRequest.GetRequestStream();
reqStream.Write(data,0,data.Length);
reqStream.Close();
// execute the request synchronously
HttpWebResponse httpWebResponse =
(HttpWebResponse)httpWebRequest.GetResponse();
-----------------------------------------------------------------------------------------------------

The above will take care of you passing data to App3. Now, will you be
writing App 3 too, or does that
code already exist? If you will write App 3 yourself, then, you can
get to the request input stream and
process the input data that your wrote to the stream above. You can do
the following:


Stream inputStream = new StreamReader(Request.InputStream);

// You can get to the header, params, etcs of the request by doing the
following:

// ---------------HTTP HEADERS-----------------
int i=0;
for(i=0; i<Request.Headers.Keys.Count; i++)
{
Console.WriteLine(Request.Headers.Keys+"="+Request.Headers[Request.Headers.Keys]);
}
// ---------------HTTP PARAMS-----------------
for(i=0; i<Request.Params.Keys.Count; i++)
{
Console.WriteLine(Request.Params.Keys+"="+Request.Params[Request.Params.Keys]);
}
---------------SERVER VARIABLES------------
for(i=0; i<Request.ServerVariables.Keys.Count; i++)
{
Console.WriteLine(Request.ServerVariables.Keys+"="+Request.ServerVariables[Request.ServerVariables.Keys]);
}

One final note about what you are doing. If you are logging request
info for every request, then I recommend that
you write an HttpModule to encapsulate that from the rest of the
application. Writing HttpModules to handle
this is the way to go. Give me some more information on what you want
to do and I will help you along a bit more.


sayed
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top