Wednesday, July 4, 2012

WEB REQ AND RESPONSE


   How to use HttpWebRequest and HttpWebResponse in .NET
  ======================================================

   http://www.codeproject.com/Articles/6554/How-to-use-HttpWebRequest-and-HttpWebResponse-in-N

  HttpWebRequest example with error handling (C#)
   =============================================

   http://www.808.dk/?code-csharp-httpwebrequest

   HttpWebRequest example with xml data
   ====================================

  http://www.codeproject.com/Articles/10430/Post-XML-Data-to-an-ASP-NET-Page-using-C


   HttpWebRequest exaple with post Method
   =======================================

   http://vinothnat.blogspot.in/2007/09/httpwebrequest-post-method.html



1) 

      FOR NEW URL ADD THE PARAMETERS OF NEW URL BASED ON SPNAME
      ----------------------------------------------------------

     

         string sSpName = "";
        string sBillURL = "";
        if (Request["spname"] != null)
            sSpName = Request["spname"].ToString();

        if (ConfigurationManager.AppSettings["BILL_URL_" + sSpName.ToUpper()] != null)
            sBillURL = ConfigurationManager.AppSettings["BILL_URL_" + sSpName.ToUpper()].ToString();


        if (!string.IsNullOrEmpty(sBillURL))
            sBillURL = sBillURL+"?" + Request.QueryString.ToString();


         under web.config
      =========================

               <add key="BILL_URL_MTNNIGERIA" value="http://localhost/Davinci/BillingApps/TpBilling/Default.aspx"/>
        <add key="BILL_URL_MTN_SA" value="http://localhost/Davinci/BillingApps/TpBilling/Default.aspx"/>





2)   webrequest method  (it includes read headers and adding)
     --------------------------------------------------------

  

   private static Object MakeWebRequest(string strURL)
    {
        WebRequest objReq;
        WebResponse objRes = null;
        StreamReader objSr = null; ;
        clsBillHeaders clsBillHeaderobj = new clsBillHeaders();
        string strBinary = "";
        try
        {
            objReq = WebRequest.Create(strURL);
            objReq.Method = "GET";
            objReq.Timeout = 6000;

            try
            {
                string m_DefaultLimit = "5";
                if (ConfigurationManager.AppSettings["DEFAULT_CONNECTIONS"] != null)
                    m_DefaultLimit = ConfigurationManager.AppSettings["DEFAULT_CONNECTIONS"].ToString();

                ServicePointManager.DefaultConnectionLimit = int.Parse(m_DefaultLimit);
            }
            catch { }

            objRes = objReq.GetResponse();

            if (objRes.Headers != null && objRes.Headers["X-IMICMS-BILLRESP"] != null)
            {
             
                clsBillHeaderobj.X_IMICMS_BILLRESP1 = objRes.Headers["X-IMICMS-BILLRESP"].ToString();
            }

            if (objRes.Headers != null && objRes.Headers["X-IMICMS-BILL"] != null)
            {
                if (objRes.Headers["X-IMICMS-BILL"].ToUpper() == "YES")
                {
                 
                    clsBillHeaderobj.X_IMICMS_BILL1 = objRes.Headers["X-IMICMS-BILL"].ToUpper();   //true;
                }
             
            }




            if (objRes.Headers != null && objRes.Headers["X-IMICMS-REDIRURL"] != null)
            {
              
                clsBillHeaderobj.X_IMICMS_REDIRURL1 = objRes.Headers["X-IMICMS-REDIRURL"].ToString();
            }

            if (objRes.Headers != null && objRes.Headers["X-IMICMS-TID"] != null)
            {
             
                clsBillHeaderobj.X_IMICMS_TID1 = objRes.Headers["X-IMICMS-TID"].ToString();
            }

            if (objRes.Headers != null && objRes.Headers["X-IMICMS-PREVDOWNLOAD"] != null)
            {
              
                clsBillHeaderobj.X_IMICMS_PREVDOWNLOAD1 = objRes.Headers["X-IMICMS-PREVDOWNLOAD"].ToString();
            }


            if (objRes.Headers != null && objRes.Headers["X-IMICMS-PRICE"] != null)
            {
              
                clsBillHeaderobj.X_IMICMS_PRICE1 = objRes.Headers["X-IMICMS-PRICE"].ToString();
            }


             objSr = new StreamReader(objRes.GetResponseStream());
            strBinary = objSr.ReadToEnd();
        }
        catch (Exception ex)
        {
           // clsLogClient objClient = new clsLogClient();
          //  objClient.LogDebugMessage("", "CRASH MakeWebRequest:" + strURL + ":ERR:" + ex.Message, "", "", "");
           // objClient = null;
           // return "ERROR|CRASH MakeWebRequest:" + ex.Message;
        }
        finally
        {
            objSr.Close();
            objRes.Close();
            objReq = null;
            objSr = null;
        }

        //return strBinary;
        return clsBillHeaderobj;
    }


3) Setting default connections
   ============================

   under web.config
   ------------------


   <add key="DEFAULT_CONNECTIONS" value="10"/>



    string con = ConfigurationManager.AppSettings["DEFAULT_CONNECTIONS"].ToString();
    ServicePointManager.DefaultConnectionLimit  = int.parse(con);




4)  webrequest.aspx.cs(using GET METHOD)
    ============================


     under web.config
    ===================

   <add key="test_url" value="http://localhost:61540/Mtncommontpbill/webresponse.aspx?uname=!txtuname!&amp;pwd=!txtpwd!"/>

 
  
      protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnsubmit_Click(object sender, EventArgs e)
    {
        // calling webreq method with parameters
        if (ConfigurationManager.AppSettings["test_url"] != null)
        {

            string url = ConfigurationManager.AppSettings["test_url"].ToString();

            #region Replacing parameters
            url = url.Replace("!txtuname!", txtuname.Text);
            url = url.Replace("!txtpwd!", txtpwd.Text);
            #endregion
            makewebreq(url);
        }



    }

    public void makewebreq(string url)
    {
        WebRequest objwebreq = null;
        WebResponse objwebres = null;

        objwebreq = WebRequest.Create(url);
        objwebreq.Method = "Get";
        objwebreq.Timeout = 6000;
        StreamReader objSr = null; ;
        string strBinary = "";
        string s = "";
        string s1 = "";

        try
        {
            objwebres = objwebreq.GetResponse();
            objSr = new StreamReader(objwebres.GetResponseStream());
            strBinary = objSr.ReadToEnd();
            if (objwebres.Headers != null && objwebres.Headers["header1"] != null)
                s = Convert.ToString(objwebres.Headers["header1"]);
            if (objwebres.Headers != null && objwebres.Headers["header2"] != null)
                s1 = Convert.ToString(objwebres.Headers["header2"]);

        }
        catch (Exception ex)
        {

            ex.Message.ToString();

        }
    }



    webresponse.aspx.cs
    ============

     protected void Page_Load(object sender, EventArgs e)
    {
        if(Request["uname"]!=null && Request["pwd"] != null)
        {
         string uname = Convert.ToString(Request["uname"]);
         string pwd = Convert.ToString(Request["pwd"]);
         //Response.AddHeader("strresponsemessage", );

         Response.AddHeader("header1", "success");
         Response.AddHeader("header2", "failure");
        // Response.Write("success"); incase if u sende single message  
        
        }
    }


5) webrequset with post xml data
   ==============================

   http://www.codeproject.com/Articles/10430/Post-XML-Data-to-an-ASP-NET-Page-using-C


6)  webrequest xmldata.aspx.cs
    ==========================

    string fileName = String.Empty;
    string url = String.Empty;
    WebRequest objWebrequest = null;
    WebResponse objWebresponse = null;
    protected void Page_Load(object sender, EventArgs e)
    {
      
      
        if (ConfigurationManager.AppSettings["xml_path"] != null)
            fileName = Convert.ToString(ConfigurationManager.AppSettings["xml_path"]);

        if (ConfigurationManager.AppSettings["xml_url"] != null)
            url = Convert.ToString(ConfigurationManager.AppSettings["xml_url"]);
        try
        {
            objWebrequest = WebRequest.Create(url);
            objWebrequest.Timeout = 12000;
            objWebrequest.Method = "POST";
            objWebrequest.ContentType = "text/xml";


            StreamWriter writer = new StreamWriter(objWebrequest.GetRequestStream());
            // Write the XML text into the stream
            writer.WriteLine(this.GetTextFromXMLFile(fileName));
            writer.Close();


            objWebresponse = objWebrequest.GetResponse();
        }
         catch(WebException webEx)
         {
       
         }
       catch(Exception ex)
       {
       
       }
           finally
           {
               if (objWebrequest != null) objWebrequest.GetRequestStream().Close();
               if (objWebrequest != null) objWebresponse.GetResponseStream().Close();
           }


    }
    private string GetTextFromXMLFile(string file)
    {
        StreamReader reader = new StreamReader(file);
        string ret = reader.ReadToEnd();
        reader.Close();
        return ret;
    }


  webresponse xmldata.aspx.cs
  ============================

        Page.Response.ContentType = "text/xml";
        // Read XML posted via HTTP
        StreamReader reader = new StreamReader(Page.Request.InputStream);
        String xmlData = reader.ReadToEnd();
        objXmldocument = new XmlDocument();
        objXmldocument.LoadXml(xmlData);
        XmlNodeList nodelist = objXmldocument.DocumentElement.SelectNodes("employee");
        foreach (XmlNode node in nodelist)
        {
            string eno = node["eno"].InnerText;
            string ename = node["ename"].InnerText;
            Response.AddHeader("eno", eno);
            Response.AddHeader("ename",ename);
       
        }


7) webrequest with post method
   ============================

   if (ConfigurationManager.AppSettings["webresponse_url_post"] != null)
            url = Convert.ToString(ConfigurationManager.AppSettings["webresponse_url_post"]);

        objWebrequest = WebRequest.Create(url);
        objWebrequest.Timeout = 30000;
        objWebrequest.Method = "POST";

        stirng param = "";

        param = "firstparam=one";
        param += "&secoundparam=two";

        byte[] objbyte = Encoding.UTF8.GetBytes(param);

        objWebrequest.ContentType = "application/x-www-form-urlencoded";
        objWebrequest.ContentLength = objbyte.Length;
        Stream dataStream = objWebrequest.GetRequestStream();
        dataStream.Write(objbyte, 0, objbyte.Length);
        dataStream.Close();

        objWebresponse = objWebrequest.GetResponse();

        //if (HttpStatusCode.OK == Response.StatusCode)
        //{
        //    dataStream = objWebresponse.GetResponseStream();
        //    StreamReader reader = new StreamReader(dataStream);
        // //   responseFromServer = reader.ReadToEnd();
        //   // File.WriteAllText(filepath, responseFromServer);
        //  //  response.Close();
        //}



    }


8) webrequest and webresponse example

    under webrequest page
    ======================

    WebRequest objReq = null; ;
        WebResponse objRes = null;
        StreamReader objSreader = null;
        string w_Connections = "5";
        string headervalue = string.Empty;

        try
        {
            objReq = WebRequest.Create("http://localhost:51734/xmlreading/webresponse.aspx?uname=ravi&pwd=password");
            objReq.Method = "GET";
            objReq.Timeout = 6000;

        }
        catch (Exception ex)
        {



        }

        try
        {
            if (ConfigurationManager.AppSettings["Default_Connections"] != null)
                w_Connections = Convert.ToString(ConfigurationManager.AppSettings["Default_Connections"]);

            ServicePointManager.DefaultConnectionLimit = Convert.ToInt32(w_Connections);
         
            objRes = objReq.GetResponse();
            objSreader = new StreamReader(objRes.GetResponseStream());


            string strBinary = objSreader.ReadToEnd().ToString();



            XmlDocument weatherdoc = new XmlDocument();
            weatherdoc.LoadXml(strBinary);

            string sWeathertemplate = string.Empty;
            string sWeatherdetailsTemp = string.Empty;
            string weatherpath = string.Empty;
            string stroutomldata = string.Empty;
            XmlDocument sWeathertemplatedoc = new XmlDocument();
            XmlNode sWeathertemplatedocelem;
            XmlNode sWeatherdetailsTempelem;
            XmlNode node = weatherdoc.DocumentElement.SelectSingleNode("channel/item");

            if (node != null && node.HasChildNodes)
            {
                if (ConfigurationManager.AppSettings["pageApiConfig"] != null)
                    sWeathertemplatedoc.Load(ConfigurationManager.AppSettings["pageApiConfig"]);

                sWeathertemplatedocelem = sWeathertemplatedoc.DocumentElement;
                sWeatherdetailsTempelem = sWeathertemplatedoc.DocumentElement;

                string strreplacedata = string.Empty;
                string strweatherdetails = sWeathertemplatedocelem.SelectSingleNode("WEATHERDETAILS").InnerXml;


                string tempdata = string.Empty;
                for (int f = 0; f < node.ChildNodes.Count; f++)
                {
                    if (node.ChildNodes[f].Name == "yweather:forecast")
                    {
                        if (node.ChildNodes[f].Attributes["date"] != null)
                        {

                            strreplacedata = sWeathertemplatedocelem.SelectSingleNode("WEATHERCONTENT/WEATHERNEWS").InnerXml;
                            string toDaydate = node.ChildNodes[f].Attributes["date"].Value;
                            string expected = node.ChildNodes[f].Attributes["text"].Value;
                            string high = node.ChildNodes[f].Attributes["high"].Value;
                            string low = node.ChildNodes[f].Attributes["low"].Value;
                            string day = node.ChildNodes[f].Attributes["day"].Value;


                            strreplacedata = strreplacedata.Replace("!IMGURL!", "images/partly_cloudy.png");
                            strreplacedata = strreplacedata.Replace("!date!", toDaydate);
                            strreplacedata = strreplacedata.Replace("!text!", expected);
                            strreplacedata = strreplacedata.Replace("!high!", high);
                            strreplacedata = strreplacedata.Replace("!low!", low);
                            strreplacedata = strreplacedata.Replace("!day!", day);

                            tempdata += strreplacedata;
                        }
                    }
                }

                strweatherdetails = strweatherdetails.Replace("!WEATHERCONTENT!", tempdata);
                Response.ContentType = "xml";
                Response.Write(strweatherdetails);
            }




            if (objRes.Headers != null && objRes.Headers["headerkey"] != null)
                headervalue = Convert.ToString(objRes.Headers["headerkey"]);
        }
        catch (Exception ex)
        {


        }



        finally
        {
            objReq = null;
            objRes = null;
            objSreader.Close();
            objSreader = null;

        }


   under webresponse page
   ======================

 
        if(HttpContext.Current.Request["uname"]!= null && HttpContext.Current.Request["pwd"]!= null)
        {
          Response.AddHeader("headerkey", HttpContext.Current.Request["uname"].ToString());

            weatherxmlpath =  "E:\\xmlreading\\xml\\weather.xml";
            XmlDocument doc = new XmlDocument();
            doc.Load(weatherxmlpath);
            Response.Write(doc.InnerXml.ToString());

        } 


9) webrequest and webresponse (get ,post, xmldata sending and receiving)

  under webrequest.cs
  ===================
   WebRequest objWebReq = null;
    WebResponse objWebRes = null;
    StreamReader objSreader = null;

    protected void Page_Load(object sender, EventArgs e)
    {

         webRequstbyGet();
         webRequestbyPost();
         webRequestXml(); // send xml as webrequest and get response as xml

    }
 
    private void webRequstbyGet()
    {

        WebRequest objWebReq = null;
        WebResponse objWebRes = null;
        StreamReader objSreader = null;
        string headerresult = string.Empty;

        try
            {
                objWebReq = WebRequest.Create("http://localhost:51734/xmlreading/webresponse.aspx?uname=ravi&pwd=password");
                objWebReq.Timeout = 40000;
                objWebReq.Method = "GET";
                objWebRes = objWebReq.GetResponse();
                objSreader = new StreamReader(objWebRes.GetResponseStream());
                string sReaderresult = objSreader.ReadToEnd();

                if(objWebRes.Headers != null && objWebRes.Headers["headerkey"] != null)
                      headerresult = Convert.ToString(objWebRes.Headers["headerkey"]);
               
            }
            catch (Exception ex)
            {
               
            }
            finally
            {
                objSreader.Close();
                objWebReq = null;
                objWebRes = null;
           
            }
            Request.ContentType = "text/xml";
            Response.Write(headerresult);
       
       
   
    }
    private void webRequestbyPost()
    {
       // throw new NotImplementedException();
        WebRequest objWebReq = null;
        WebResponse objWebResp = null;
        StreamReader objSreader = null;
        string resHeader = string.Empty;
        string param = string.Empty;
        try
        {
            objWebReq = WebRequest.Create("http://localhost:51734/xmlreading/webresponse.aspx");
            objWebReq.Method = "POST";
            objWebReq.Timeout = 60000;
            param += "uname=ravi";
            param += "&pwd=pwd";

            byte[] objbytes = Encoding.UTF8.GetBytes(param);

            objWebReq.ContentType = "application/x-www-form-urlencoded";
            objWebReq.ContentLength = objbytes.Length;
            Stream dataStream = objWebReq.GetRequestStream();
            dataStream.Write(objbytes, 0, objbytes.Length);
            dataStream.Close();

            objWebResp = objWebReq.GetResponse();

            if (objWebResp.Headers != null && objWebResp.Headers["headerkey"] != null)
                resHeader = Convert.ToString(objWebResp.Headers["headerkey"]);
           

        }
        catch (Exception ex)
        {


        }
        finally
        {

            objSreader.Close();
            objWebReq = null;
            objWebResp = null;
       
        }

    }

    private void webRequestXml()
    {

        // send xml as webrequest and get response as xml

        string filePath = string.Empty;
        string webReqUrl = string.Empty;
        string xmlWebResponse = string.Empty;
      
        if(ConfigurationManager.AppSettings["xmlemppath"] != null)
            filePath = Convert.ToString(ConfigurationManager.AppSettings["xmlemppath"]);

        if (ConfigurationManager.AppSettings["webReqUrl"] != null)
            webReqUrl = Convert.ToString(ConfigurationManager.AppSettings["webReqUrl"]);

        try
        {

            objWebReq = WebRequest.Create(webReqUrl);
            objWebReq.Timeout = 60000;
            objWebReq.Method = "POST";
            objWebReq.ContentType = "text/xml";

            StreamWriter objWritter = new StreamWriter(objWebReq.GetRequestStream());
            objWritter.WriteLine(this.GetTextFromXMLFile(filePath));
            objWritter.Close();

            objWebRes = objWebReq.GetResponse();

            StreamReader objSreader = new StreamReader(objWebRes.GetResponseStream());
            string resulxmlfromResponse = objSreader.ReadToEnd();


            if (objWebRes.Headers != null && objWebRes.Headers["xmlwebresponseheader"] != null)
                xmlWebResponse = Convert.ToString(objWebRes.Headers["xmlwebresponseheader"]);

        }
        catch (Exception ex)
        {


        }
        finally
        {
       
       
       
        }
       
   
   
    }
    private string GetTextFromXMLFile(string filepath)
    {
        string strXml = string.Empty;
        StreamReader objSreader = new StreamReader(filepath);
        strXml = objSreader.ReadToEnd();
        return strXml;

   
   
   
    }


  under webresponse.cs
  ====================
 
   string weatherxmlpath = string.Empty;
    XmlDocument objdoc = null;
    protected void Page_Load(object sender, EventArgs e)
    {
        // to know the webRequest ip address
        string pstrClientAddress = HttpContext.Current.Request.UserHostAddress;
       
        // checking the ipconfig of client
        if (HttpContext.Current.Request["uname"] != null && HttpContext.Current.Request["pwd"] != null && HttpContext.Current.Request["ipadd"]!= null)
        {
            if (HttpContext.Current.Request["ipadd"].ToString() == Dns.GetHostAddresses("www.google.com")[0].Address.ToString())
            {
                
            }
            else
            {

                Response.Write("Access Denied");
            }

          Response.AddHeader("headerkey", HttpContext.Current.Request["uname"].ToString());

            weatherxmlpath =  "E:\\xmlreading\\xml\\weather.xml";
            XmlDocument doc = new XmlDocument();
            doc.Load(weatherxmlpath);
            Response.Write(doc.InnerXml.ToString());

        }
       // Response.Write();


       // reading xml as webrequest

        Page.Response.ContentType = "text/xml";
        StreamReader objSreader = new StreamReader(Page.Request.InputStream);
        string strxml = objSreader.ReadToEnd();
        objdoc = new XmlDocument();
        objdoc.LoadXml(strxml);
        Response.Write(objdoc.InnerXml.ToString());
    }
       

No comments:

Post a Comment