HttpWebRequest post提交XMl参数请求,

public string StartPing(string pingURL)//改为一个传参数URL

{

StreamReader sr = null;

StringBuilder sb = new StringBuilder();

string strOutput = string.Empty;

string strXML = string.Empty;

try

{

//HttpUtility.HtmlEncode

strXML = 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();

}

  

下面是服务器端接收请求方法:

加载事件里:

//对应方法StartPing

            byte[] 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>

            */

  

你可能感兴趣的:(request)