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>
             */

  

分类:  ASP.NET
本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2013/03/18/2966268.html ,如需转载请自行联系原作者
相关文章
|
4月前
|
XML 数据格式
restTemplat发post请求报错Content type ‘application/xml;charset=UTF-8‘ not supported“
restTemplat发post请求报错Content type ‘application/xml;charset=UTF-8‘ not supported“
|
8月前
|
XML 人工智能 JSON
SpringBoot实战(二):SpringMvc接收xml请求
SpringBoot实战(二):SpringMvc接收xml请求
332 0
|
8月前
|
XML Android开发 数据格式
Android XML 布局基础(三)LayoutParams 布局参数
Android XML 布局基础(三)LayoutParams 布局参数
138 0
|
11月前
|
XML 数据格式
java202303java学习笔记第四十七天-请求-基础操作-XML映射文件3
java202303java学习笔记第四十七天-请求-基础操作-XML映射文件3
55 0
|
11月前
|
XML 数据格式
java202303java学习笔记第四十七天-请求-基础操作-XML映射文件1
java202303java学习笔记第四十七天-请求-基础操作-XML映射文件1
35 0
|
11月前
|
XML 数据格式
java202303java学习笔记第四十七天-请求-基础操作-XML映射文件2
java202303java学习笔记第四十七天-请求-基础操作-XML映射文件2
49 0
|
11月前
|
XML SQL Java
MyBatis-06 MyBatis XML方式之多个接口参数用法
MyBatis-06 MyBatis XML方式之多个接口参数用法
59 0
|
XML JSON 前端开发
ajax请求json和xml数据及对json和xml格式数据的解析
ajax请求json和xml数据及对json和xml格式数据的解析
156 0
|
XML 测试技术 数据安全/隐私保护
【SoapUI、Postman、WebServiceStudio、Jmeter】接口测试工具结合测试webservice接口(发送XML格式参数)
【SoapUI、Postman、WebServiceStudio、Jmeter】接口测试工具结合测试webservice接口(发送XML格式参数)
225 0
|
XML SQL Java
Mybatis接口参数与xml占位符的几种映射关系介绍
在 mybatis 的日常开发中,mapper 接口中定义的参数如何与 xml 中的参数进行映射呢?除了我们常用的@Param注解之外,其他的方式是怎样的呢?
283 0
Mybatis接口参数与xml占位符的几种映射关系介绍