WebRequest之Post写法

来源:互联网 发布:tourex 源码 编辑:程序博客网 时间:2024/05/21 21:45

ing is an alias for String in the .NET Framework。string是String的别号罢了,string是c#中的类,String是Framework的类,C# string 映射为 Framework的 String。若是用string,编译器会把它编译成String,所以若是直接用String就可以让编译器少做一点点工作。

成功是克服艰苦险阻的斗争结晶。Web.Config

天才就是劳动,人的先天就像火花,它可以熄灭,也可以燃烧起来,而逼它燃烧成熊熊大火的办法只有一个,就是劳动再劳动。<globalization  responseEncoding="gb2312"/>
CS文件
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Net;using System.Text;using System.IO;using System.Xml;using System.Collections;using System.Diagnostics;namespace WebPortal{    public partial class _Default : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {                   }        protected void Button1_Click(object sender, EventArgs e)        {            CoreProxy.Class1 c = new CoreProxy.Class1();            c.test1();        }        protected void Button2_Click(object sender, EventArgs e)        {            webquerst1();                    }        public void webquers2()        {            string html = null;            string url = "http://china.alibaba.com/keyword/promotion.htm?catId=14";            WebRequest req = WebRequest.Create(url);            req.Method = "POST";            WebResponse res = req.GetResponse();            Stream receiveStream = res.GetResponseStream();            Encoding encode = Encoding.GetEncoding("gb2312");            StreamReader sr = new StreamReader(receiveStream, encode);            char[] readbuffer = new char[256];            int n = sr.Read(readbuffer, 0, 256);            while (n > 0)            {                string str = new string(readbuffer, 0, n);                html += str;                n = sr.Read(readbuffer, 0, 256);            }            System.Console.Write(html);        }        //成功!,哄骗WebRequest 一次Post提交XML内容        public void webquerst1()        {            WebRequest request = WebRequest.Create("http://192.168.1.244/WebPortal/PortalHandler.ashx");            // Set the Method property of the request to POST.            request.Method = "POST";            // Create POST data and convert it to a byte array.            System.Xml.XmlDocument xmlpostdata = new System.Xml.XmlDocument();            xmlpostdata.Load(Server.MapPath("XML/20097.xml"));            string postData = HttpUtility.HtmlEncode(xmlpostdata.InnerXml);             //通俗字符串内容            //string postData = "你好,1232355 abdcde";            byte[] byteArray = Encoding.UTF8.GetBytes(postData);            // Set the ContentType property of the WebRequest.            request.ContentType = "application/x-www-form-urlencoded";            // Set the ContentLength property of the WebRequest.            request.ContentLength = byteArray.Length;            // Get the request stream.            Stream dataStream = request.GetRequestStream();                        // Write the data to the request stream.            dataStream.Write(byteArray, 0, byteArray.Length);            // Close the Stream object.            dataStream.Close();            // Get the response.            WebResponse response = request.GetResponse();            // Display the status.            //Console.WriteLine(((HttpWebResponse)response).StatusDescription);            // Get the stream containing content returned by the server.            dataStream = response.GetResponseStream();            // Open the stream using a StreamReader for easy access.            StreamReader reader = new StreamReader(dataStream);            // Read the content.            string responseFromServer = reader.ReadToEnd();            // Display the content.            //Console.WriteLine(responseFromServer);            // Clean up the streams.            reader.Close();            dataStream.Close();            response.Close();                        }        protected void Button3_Click(object sender, EventArgs e)        {            WebClientPost();        }        //重点!! 成功 哄骗Webclient Post 按字段的体式格式提交每个字段的内容给办事器端         public void WebClientPost()        {            System.Xml.XmlDocument xmlpostdata = new System.Xml.XmlDocument();            xmlpostdata.Load(Server.MapPath("XML/OrderClient.xml"));            string OrderClient = HttpUtility.HtmlEncode(xmlpostdata.InnerXml);            xmlpostdata.Load(Server.MapPath("XML/Order.xml"));            string Order = HttpUtility.HtmlEncode(xmlpostdata.InnerXml);            xmlpostdata.Load(Server.MapPath("XML/TargetOut.xml"));            string TargetOut = HttpUtility.HtmlEncode(xmlpostdata.InnerXml);            xmlpostdata.Load(Server.MapPath("XML/ArrayOfOrderDetail.xml"));            string ArrayOfOrderDetail = HttpUtility.HtmlEncode(xmlpostdata.InnerXml);             System.Net.WebClient WebClientObj = new System.Net.WebClient();            System.Collections.Specialized.NameValueCollection PostVars = new System.Collections.Specialized.NameValueCollection();                                    //添加值域            PostVars.Add("OrderClient", OrderClient);            PostVars.Add("Order", Order);            PostVars.Add("TargetOut", TargetOut);            PostVars.Add("ArrayOfOrderDetail", ArrayOfOrderDetail);                                    try            {                byte[] byRemoteInfo = WebClientObj.UploadValues("http://192.168.1.244/WebPortal/PlaceOrder.ashx", "POST", PostVars);                //下面都没用啦,就上方一句话就可以了                string sRemoteInfo = System.Text.Encoding.Default.GetString(byRemoteInfo);                //这是获取返回信息                Debug.WriteLine(sRemoteInfo);                            }            catch            { }         }        //未测试,应用WebClient 一次性提交POst        public static string SendPostRequest(string url, string postString)        {                        byte[] postData = Encoding.UTF8.GetBytes(postString);            WebClient client = new WebClient();            client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");            client.Headers.Add("ContentLength", postData.Length.ToString());            byte[] responseData = client.UploadData(url, "POST", postData);            return Encoding.Default.GetString(responseData);        }        /// <summary>        /// 这个是用WEbRequest 提交到WEbService 的例子        /// </summary>        /// <param name="URL"></param>        /// <param name="MethodName"></param>        /// <param name="Pars"></param>        /// <returns></returns>        public static XmlDocument QueryPostWebService(String URL, String MethodName, Hashtable Pars)        {            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL);            request.Method = "POST";            request.ContentType = "application/x-www-form-urlencoded";            SetWebRequest(request);            byte[] data = EncodePars(Pars);            WriteRequestData(request, data);            return ReadXmlResponse(request.GetResponse());        }        private static void SetWebRequest(HttpWebRequest request)        {            request.Credentials = CredentialCache.DefaultCredentials;            request.Timeout = 10000;        }        private static void WriteRequestData(HttpWebRequest request, byte[] data)        {            request.ContentLength = data.Length;            Stream writer = request.GetRequestStream();            writer.Write(data, 0, data.Length);            writer.Close();        }        private static byte[] EncodePars(Hashtable Pars)        {            return Encoding.UTF8.GetBytes(ParsToString(Pars));        }        private static String ParsToString(Hashtable Pars)        {            StringBuilder sb = new StringBuilder();            foreach string k in Pars.Keys)            {                if (sb.Length > 0)                {                    sb.Append("&");                }                sb.Append(HttpUtility.UrlEncode(k) + "=" + HttpUtility.UrlEncode(Pars[k].ToString()));            }            return sb.ToString();        }        private static XmlDocument ReadXmlResponse(WebResponse response)        {            StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);            String retXml = sr.ReadToEnd();            sr.Close();            XmlDocument doc = new XmlDocument();            doc.LoadXml(retXml);            return doc;        }        private static void AddDelaration(XmlDocument doc)        {            XmlDeclaration decl = doc.CreateXmlDeclaration("1.0", "utf-8", null);            doc.InsertBefore(decl, doc.DocumentElement);        }        protected void Button4_Click(object sender, EventArgs e)        {        }     }}

ashx

 史密斯

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;using System.Diagnostics;using System.IO;using System.Xml;namespace WebPortal{    /// <summary>    /// ¥codebehindclassname¥ 的择要申明    /// </summary>    [WebService(Namespace = "http://tempuri.org/")]    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]    public class PortalHandler : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            string testGet = context.Request["testGet"];            string testPost = context.Request["testPost"];            Debug.WriteLine(testGet);            Debug.WriteLine(testPost);                        //一次性提交的体式格式            //获得内容长度            int len = context.Request.ContentLength;                        //获得所有内容流            StreamReader reader = new StreamReader(context.Request.InputStream);            //读取内容            string responseFromServer = reader.ReadToEnd();                                    //字段提交Post体式格式            string a1 = context.Request["A1"];            string a2 = context.Request["A2"];            string a3 = context.Request["A3"];            //解析Html编码            string re = HttpUtility.HtmlDecode(a1);            XmlDocument xd = new XmlDocument();            //加载XML            xd.LoadXml(re);            context.Response.ContentType = "text/plain";            context.Response.Write(testGet);        }        public bool IsReusable        {            get            {                return false;            }        }    }}
原创粉丝点击