How can I avoid waiting for a response after an HttpWebRequest POST?
-
I’m POSTING to an ashx file from my aplication. What I want to do is just post information about some variables of my aplication, and never wait for an answer. What I need is to avoid waiting for an answer, because I don’t need it. I’m accesing the file this way. ----------------------------- string queryString = "http://website/PrivateHandler.ashx"; System.Net.HttpWebRequest myHttpWebRequest = (System.Net.HttpWebRequest)WebRequest.Create(queryString); myHttpWebRequest.Method = "POST"; myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"; string strRequest = "mode=1&bID=1&gID=1"; UTF8Encoding objUTF8Encoding = new UTF8Encoding(); byte[] arrRequest = objUTF8Encoding.GetBytes(strRequest); myHttpWebRequest.ContentLength = arrRequest.Length; Stream strmRequest = myHttpWebRequest.GetRequestStream(); strmRequest.Write(arrRequest, 0, arrRequest.Length); strmRequest.Close(); //Wait for an answer (I don’t need an answer). System.Net.WebResponse resp = myHttpWebRequest.GetResponse(); System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()); sr.ReadToEnd(); --------------------------------- WebResponse and ReadToEnd are there because if I don’t read what return, I can only call the ashx file twice and then the system hangs. What I need is to post multiple times and never wait for an answer and waste performance because of that. Is there a way to achieve what I need? Thank you very much. Martín Suárez Viacava
-
I’m POSTING to an ashx file from my aplication. What I want to do is just post information about some variables of my aplication, and never wait for an answer. What I need is to avoid waiting for an answer, because I don’t need it. I’m accesing the file this way. ----------------------------- string queryString = "http://website/PrivateHandler.ashx"; System.Net.HttpWebRequest myHttpWebRequest = (System.Net.HttpWebRequest)WebRequest.Create(queryString); myHttpWebRequest.Method = "POST"; myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"; string strRequest = "mode=1&bID=1&gID=1"; UTF8Encoding objUTF8Encoding = new UTF8Encoding(); byte[] arrRequest = objUTF8Encoding.GetBytes(strRequest); myHttpWebRequest.ContentLength = arrRequest.Length; Stream strmRequest = myHttpWebRequest.GetRequestStream(); strmRequest.Write(arrRequest, 0, arrRequest.Length); strmRequest.Close(); //Wait for an answer (I don’t need an answer). System.Net.WebResponse resp = myHttpWebRequest.GetResponse(); System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()); sr.ReadToEnd(); --------------------------------- WebResponse and ReadToEnd are there because if I don’t read what return, I can only call the ashx file twice and then the system hangs. What I need is to post multiple times and never wait for an answer and waste performance because of that. Is there a way to achieve what I need? Thank you very much. Martín Suárez Viacava
It appears your are trying to use an HTTPHandler as a Web Service. Why not just create a Web Service?
only two letters away from being an asset
-
It appears your are trying to use an HTTPHandler as a Web Service. Why not just create a Web Service?
only two letters away from being an asset
Thanks for your answer. If I use a WebService, won´t I have a lot of extra overhead? I´m trying to avoid overhead as much as possible. Thanks again. Martín Suárez Viacava
-
Thanks for your answer. If I use a WebService, won´t I have a lot of extra overhead? I´m trying to avoid overhead as much as possible. Thanks again. Martín Suárez Viacava
You will have a better performing solution. A HTTPHandler isn't meant to be used in the manner you are trying. "All an HTTPHandler does really is take an HTTPContext object and work out what to do with it." http://aspalliance.com/articleViewer.aspx?aId=441&pId=[^]
only two letters away from being an asset
-
I’m POSTING to an ashx file from my aplication. What I want to do is just post information about some variables of my aplication, and never wait for an answer. What I need is to avoid waiting for an answer, because I don’t need it. I’m accesing the file this way. ----------------------------- string queryString = "http://website/PrivateHandler.ashx"; System.Net.HttpWebRequest myHttpWebRequest = (System.Net.HttpWebRequest)WebRequest.Create(queryString); myHttpWebRequest.Method = "POST"; myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"; string strRequest = "mode=1&bID=1&gID=1"; UTF8Encoding objUTF8Encoding = new UTF8Encoding(); byte[] arrRequest = objUTF8Encoding.GetBytes(strRequest); myHttpWebRequest.ContentLength = arrRequest.Length; Stream strmRequest = myHttpWebRequest.GetRequestStream(); strmRequest.Write(arrRequest, 0, arrRequest.Length); strmRequest.Close(); //Wait for an answer (I don’t need an answer). System.Net.WebResponse resp = myHttpWebRequest.GetResponse(); System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()); sr.ReadToEnd(); --------------------------------- WebResponse and ReadToEnd are there because if I don’t read what return, I can only call the ashx file twice and then the system hangs. What I need is to post multiple times and never wait for an answer and waste performance because of that. Is there a way to achieve what I need? Thank you very much. Martín Suárez Viacava
What about use asynchronous delegate?
:^):^):^):^):^):^):^):^):^):^):^):^) :^):rose::rose::rose::rose::rose:▒▒〓▒〓▒▒ :^):rose::^):^):^):^)▒〓〓〓〓〓▒ :^):rose::^):^):^):^)▒▒〓▒〓▒▒ :^):rose::^):^):^):^)▒〓〓〓〓〓▒ :^):rose::rose::rose::rose::rose:▒▒〓▒〓▒▒ :^):^):^):^):^):^):^):^):^):^):^):^)
-
What about use asynchronous delegate?
:^):^):^):^):^):^):^):^):^):^):^):^) :^):rose::rose::rose::rose::rose:▒▒〓▒〓▒▒ :^):rose::^):^):^):^)▒〓〓〓〓〓▒ :^):rose::^):^):^):^)▒▒〓▒〓▒▒ :^):rose::^):^):^):^)▒〓〓〓〓〓▒ :^):rose::rose::rose::rose::rose:▒▒〓▒〓▒▒ :^):^):^):^):^):^):^):^):^):^):^):^)
Thanks again for your help. xibeifeijian, won't that create a new thread to hear for the async answer? Thanks. Martín
-
I’m POSTING to an ashx file from my aplication. What I want to do is just post information about some variables of my aplication, and never wait for an answer. What I need is to avoid waiting for an answer, because I don’t need it. I’m accesing the file this way. ----------------------------- string queryString = "http://website/PrivateHandler.ashx"; System.Net.HttpWebRequest myHttpWebRequest = (System.Net.HttpWebRequest)WebRequest.Create(queryString); myHttpWebRequest.Method = "POST"; myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"; string strRequest = "mode=1&bID=1&gID=1"; UTF8Encoding objUTF8Encoding = new UTF8Encoding(); byte[] arrRequest = objUTF8Encoding.GetBytes(strRequest); myHttpWebRequest.ContentLength = arrRequest.Length; Stream strmRequest = myHttpWebRequest.GetRequestStream(); strmRequest.Write(arrRequest, 0, arrRequest.Length); strmRequest.Close(); //Wait for an answer (I don’t need an answer). System.Net.WebResponse resp = myHttpWebRequest.GetResponse(); System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()); sr.ReadToEnd(); --------------------------------- WebResponse and ReadToEnd are there because if I don’t read what return, I can only call the ashx file twice and then the system hangs. What I need is to post multiple times and never wait for an answer and waste performance because of that. Is there a way to achieve what I need? Thank you very much. Martín Suárez Viacava
put the code in a thread....