public string StartPing(string pingURL)//改为一个传参数URL{StreamReader sr = null;StringBuilder sb = new StringBuilder();string strOutput = string.Empty;string strXML = string.Empty;try{//HttpUtility.HtmlEncodestrXML = BuildXML();int len = strXML.Length;ASCIIEncoding ascii = new ASCIIEncoding();HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(pingURL);webReq.Method = "POST";webReq.Timeout = 3000;//超时为3秒webReq.ContentType = "text/xml"; //string contenttype = "application/x-www-form-urlencoded";//更网站该方法支持的类型要一致webReq.Credentials = CredentialCache.DefaultNetworkCredentials;webReq.ContentLength = len;Stream streamRequest = webReq.GetRequestStream();byte[] bt = ascii.GetBytes(strXML);streamRequest.Write(bt, 0, len);HttpWebResponse webRes = (HttpWebResponse)webReq.GetResponse();sr = new StreamReader(webRes.GetResponseStream(), Encoding.ASCII);string ret = sr.ReadToEnd();sb.AppendLine("\n");sb.AppendLine(ret);if (ret.IndexOf("<boolean>0</boolean>") >= 0){sb.AppendLine("\n\t 服务提交成功!");}else if (ret.IndexOf("<boolean>1</boolean>") >= 0){sb.AppendLine("\n\t 服务提交失败!");}if (sr != null){sr.Close();}}catch (Exception ex){sb.AppendLine(ex.Message);sb.AppendLine(ex.StackTrace);}finally{strOutput = sb.ToString();if (sr != null){sr.Dispose();}}return strOutput;}private string BuildXML(){System.Text.StringBuilder sb = new System.Text.StringBuilder();sb.Append("<?xml version=\"1.0\"?>");sb.Append("<params>");sb.AppendFormat("<title>{0}", "公告标题");sb.Append("</title>");sb.AppendFormat("<content>{0}", "公告内容,base64加密的");sb.Append("</content>");sb.Append("<verify=be10c510b5f4f082dbd4268820cde895>");sb.Append("</params>");return sb.ToString();}
下面是服务器端接收请求方法:
加载事件里://对应方法StartPingbyte[] byts = new byte[Request.InputStream.Length];Request.InputStream.Read(byts, 0, byts.Length);string req = System.Text.Encoding.Default.GetString(byts);req = Server.UrlDecode(req);//下面是接收到的内容//<?xml version="1.0"?><params><title>????</title><content>?????base64???</content><verify=be10c510b5f4f082dbd4268820cde895></params>*/