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 ,如需转载请自行联系原作者
相关文章
|
5月前
|
XML 前端开发 测试技术
如何使用 Postman 发送 POST XML 请求?
使用 Postman 发送带有 XML 数据的 POST 请求。我们将引导您完成将 XML 数据有效发送到 Web 服务或 API 的步骤,使处理这种常见数据格式变得简单易行。
|
11月前
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
1994 0
|
XML Java 数据库
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
这篇文章是Spring5框架的实战教程,详细介绍了事务的概念、ACID特性、事务操作的场景,并通过实际的银行转账示例,演示了Spring框架中声明式事务管理的实现,包括使用注解和XML配置两种方式,以及如何配置事务参数来控制事务的行为。
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
|
XML Java 数据库连接
MyBatis 解决上篇的参数绑定问题以及XML方式交互
MyBatis 解决上篇的参数绑定问题以及XML方式交互
167 0
|
XML 数据格式
restTemplat发post请求报错Content type ‘application/xml;charset=UTF-8‘ not supported“
restTemplat发post请求报错Content type ‘application/xml;charset=UTF-8‘ not supported“
511 1
|
SQL Java 数据库连接
Java【付诸实践 01】使用org.apache.ibatis.plugin.Interceptor拦截器实现全局mapper.xml参数注入(可用于切换数据库实例schema)源码实例分享
Java【付诸实践 01】使用org.apache.ibatis.plugin.Interceptor拦截器实现全局mapper.xml参数注入(可用于切换数据库实例schema)源码实例分享
427 0
|
Web App开发 安全 iOS开发
04dwr - web.xml配置(常用 init-param 参数列表)
04dwr - web.xml配置(常用 init-param 参数列表)
82 0
|
XML 人工智能 JSON
SpringBoot实战(二):SpringMvc接收xml请求
SpringBoot实战(二):SpringMvc接收xml请求
585 0
|
XML Android开发 数据格式
Android XML 布局基础(三)LayoutParams 布局参数
Android XML 布局基础(三)LayoutParams 布局参数
387 0
|
XML 数据格式
java202303java学习笔记第四十七天-请求-基础操作-XML映射文件3
java202303java学习笔记第四十七天-请求-基础操作-XML映射文件3
112 0