(转载).Net HttpPost的发送和接收示例代码
HttpPost在不同系统进行数据交互的时候经常被使用。它的最大好处在于直接,不像Webservice或者WCF需要wsdl作为一个双方的"中介"。在安全性上,往往通过IP限制的方式处理。下面以代码说明HttpPost的发送和接收。
发送:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace HttpPostDemo.Sender
{
publicpartialclass Sender : System.Web.UI.Page
{
protectedvoid Page_Load(object sender, EventArgs e)
{
var sb =new StringBuilder();
sb.Append("<?xml version=\"1.0\" encoding=\"UTF-\"?>\r\n");
sb.Append("<MESSAGE>\r\n");
sb.Append(" <HEAD>\r\n");
sb.Append(" <CODE>消息标志</CODE>\r\n");
sb.Append(" <SID>消息序列号</SID>\r\n");
sb.Append(" <TIMESTAMP>时间戳</TIMESTAMP>\r\n");
sb.Append(" </HEAD>\r\n");
sb.Append(" <BODY>\r\n");
sb.Append(" <ECDEPTID>部门ID</ECDEPTID>\r\n");
sb.Append(" <ECCODE>EC集团客户编码</ECCODE>\r\n");
sb.Append(" <DEPTNAME>部门名称</DEPTNAME>\r\n");
sb.Append(" <PARENTID>上级部门ID</PARENTID>\r\n");
sb.Append(" <DESCRIPTION>部门描述</DESCRIPTION>\r\n");
sb.Append(" </BODY>\r\n");
sb.Append("</MESSAGE>\r\n"); var postUrl ="http://localhost:8088/HttpPostDemo/HttpPostDemo.Receive/Receiver.aspx";
var resMessage = HttpXmlPostRequest(postUrl, sb.ToString(), Encoding.UTF8);
Response.Write(resMessage); } ///<summary>
/// HttpPost发送XML并返回响应
///</summary>
///<param name="postUrl"></param>
///<param name="xml"></param>
///<param name="encoding"></param>
///<returns>Response响应</returns>
publicstaticstring HttpXmlPostRequest(string postUrl, string postXml, Encoding encoding)
{
if (string.IsNullOrEmpty(postUrl))
{
thrownew ArgumentNullException("HttpXmlPost ArgumentNullException : postUrl IsNullOrEmpty");
} if (string.IsNullOrEmpty(postXml))
{
thrownew ArgumentNullException("HttpXmlPost ArgumentNullException : postXml IsNullOrEmpty");
} var request = (HttpWebRequest)WebRequest.Create(postUrl);
byte[] byteArray = encoding.GetBytes(postXml);
request.ContentLength = byteArray.Length;
request.Method ="post";
request.ContentType ="text/xml"; using (var requestStream = request.GetRequestStream())
{
requestStream.Write(byteArray, , byteArray.Length);
} using (var responseStream = request.GetResponse().GetResponseStream())
{
returnnew StreamReader(responseStream, encoding).ReadToEnd();
}
}
}
}
接收:
using System;
using System.Text; namespace HttpPostDemo.Receive
{
publicpartialclass Receiver : System.Web.UI.Page
{
protectedvoid Page_Load(object sender, EventArgs e)
{
var inputStream = Request.InputStream;
var strLen = Convert.ToInt32(inputStream.Length);
var strArr =newbyte[strLen];
inputStream.Read(strArr, , strLen);
var requestMes = Encoding.UTF8.GetString(strArr); Response.Write(requestMes);
Response.End();
}
}
}
(转载).Net HttpPost的发送和接收示例代码的更多相关文章
- .Net HttpPost的发送和接收示例代码
/// <summary> /// 模拟http 发送post或get请求 /// </summary> /// <param name="Url"& ...
- javaMail 邮件发送和接收示例,支持正文图片、html、附件(转)
转自:https://blog.csdn.net/star_fly4/article/details/52037587 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文 ...
- sendcloud golang 发送短信 示例代码
package main import ( "fmt" "crypto/md5" "encoding/hex" "sort&quo ...
- Android Java使用JavaMail API发送和接收邮件的代码示例
JavaMail是Oracle甲骨文开发的Java邮件类API,支持多种邮件协议,这里我们就来看一下Java使用JavaMail API发送和接收邮件的代码示例 使用Javamail发送邮件,必需的j ...
- (转载)JavaWeb学习总结(五十一)——邮件的发送与接收原理
博客源地址:http://www.cnblogs.com/xdp-gacl/p/4209586.html 一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电 ...
- 2.技巧: 用 JAXM 发送和接收 SOAP 消息—Java API 使许多手工生成和发送消息方面必需的步骤自动化
转自:https://www.cnblogs.com/chenying99/archive/2013/05/23/3094128.html 技巧: 用 JAXM 发送和接收 SOAP 消息—Java ...
- 探索 OpenStack 之(15):oslo.messaging 和 Cinder 中 MessageQueue 消息的发送和接收
前言:上一篇文章 只是 RabbitMQ 的科普,本文将仔细分析 Cinder 中 RabbitMQ 的各组件的使用.消息的发送和接收等.由于各流程步骤很多,本文只会使用若干流程图来加以阐述,尽量做到 ...
- DICOM医学图像处理:DIMSE消息发送与接收“大同小异”之DCMTK fo-dicom mDCM
背景: 从DICOM网络传输一文开始,相继介绍了C-ECHO.C-FIND.C-STORE.C-MOVE等DIMSE-C服务的简单实现,博文中的代码给出的实例都是基于fo-dicom库来实现的,原因只 ...
- 使用JavaMail发送和接收电子邮件
一. 为什么要学习JavaMail 为什么要学习JavaMail开发? 如今非常多WEB应用在开发时都须要集成邮件发送功能.比如: 1. 给新注冊的用户自己主动发送一封包括其注冊信息的欢迎E-Mail ...
随机推荐
- js 字符及字符串
1. 判断是否为null或者空字符 var == null var == undefined var == '' 2. 字符串及其分割 var arr = new Array(); //定义一数组 a ...
- chrome浏览器频频崩溃,如何解决?
之前chrome常崩溃,也没有找到原因,就将就着用吧,一直用到今天, 今天连续几次崩了,突然想到,难道是因为我访问的域名没有解析(能想到这个,是因为今天分配公司域名测试的时候常输错),于是就输入一个不 ...
- mac 终端中添加tree命令显示文件目录结构
在Ubuntu下,通过 sudo apt-get install tree 可以使用tree命令,显示文件目录列表,如图所示: 在mac OS X系统下怎么使用呢? 在终端输入: cd $home ...
- Yii框架页面运行流程
Yii框架页面运行流程 CComponent | CModel | CActiveRecord.CFormModel(所有模型的父类) | 表名.php(模型) | 入口文件------------- ...
- div置于页面底部
一直对于页面置底有一些困惑,下面这个例子不知道能不能解决 <!DOCTYPE html> <html lang="en"> <head> < ...
- 如何在网页上显示html代码?
a: 把代码写在文本区域 <textarea> 标签中.可以设置 disabled="disabled" 属性,禁止用户操作.b: 把要显示在html文档中标签的 &q ...
- java strtus2 DynamicMethodInvocation配置入门 " ! "访问action里面的方法
这里来讲解一下strtus2动态配置的用法. 配置之后不用通过 <action method="">去配置调用的具体方法. 第一:web.xml <?xml ve ...
- Java 链式编程
这里来做一个Java 链式编程的例子,基本就是每次返回一个对象本身,这样就能够去调用对象的方法和属性. package com.sun; public class Demo05 { /** * @pa ...
- JavaScript 计算两个颜色叠加值
function multiply(rgb1, rgb2) { var result = [], i = 0; for( ; i < rgb1.length; i++ ) { result.pu ...
- Android开发环境搭建(2015年8月更新)
1. 下载和安装Android SDK Android的官方站点是http://www.android.com: 登录https://developer.android.com/intl/zh-cn ...