.Net HttpPost的发送和接收示例代码
/// <summary>
/// 模拟http 发送post或get请求
/// </summary>
/// <param name="Url"></param>
/// <param name="postDataStr"></param>
/// <returns></returns>
public string HttpPost(string url, string data)
{
string returnData = null;
try
{
byte[] buffer = Encoding.UTF8.GetBytes(data);
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);
webReq.Method = "POST";
webReq.ContentType = "application/x-www-form-urlencoded";
webReq.ContentLength = buffer.Length;
Stream postData = webReq.GetRequestStream();
postData.Write(buffer, 0, buffer.Length);
postData.Close();
//HttpWebResponse webResp = (HttpWebResponse)webReq.GetResponse();
HttpWebResponse webResp;
try
{
webResp = (HttpWebResponse)webReq.GetResponse();
}
catch (WebException ex)
{
webResp = (HttpWebResponse)ex.Response;
}
Stream answer = webResp.GetResponseStream();
StreamReader answerData = new StreamReader(answer);
returnData = answerData.ReadToEnd();
}
catch (Exception ex)
{
//Response.Write(ex.Message);
return ex.Message;
}
return returnData.Trim() + "\n";
}
public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{ // 总是接受
return true;
}
public string HttpGet(string PageUrl)
{
try
{
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
WebRequest request = WebRequest.Create(PageUrl);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();
Encoding encode = Encoding.GetEncoding("utf-8");
//Encoding encode = Encoding.GetEncoding("gb2312");
StreamReader sr = new StreamReader(resStream, encode);
string retstr = sr.ReadToEnd();
resStream.Close();
sr.Close();
return retstr;
}
catch (Exception e)
{
return e.Message;
}
}
/// <summary>
/// 模拟http 发送post或get请求 传递Json内容
/// </summary>
/// <param name="Url"></param>
/// <param name="postDataStr"></param>
/// <returns></returns>
public string HttpPostJson(string url, string data)
{
string returnData = null;
try
{
byte[] buffer = Encoding.UTF8.GetBytes(data);
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);
webReq.Method = "POST";
webReq.ContentType = "application/json";
webReq.Accept = "application/json";
webReq.ContentLength = buffer.Length;
Stream postData = webReq.GetRequestStream();
postData.Write(buffer, 0, buffer.Length);
postData.Close();
//HttpWebResponse webResp = (HttpWebResponse)webReq.GetResponse();
HttpWebResponse webResp;
try
{
webResp = (HttpWebResponse)webReq.GetResponse();
}
catch (WebException ex)
{
webResp = (HttpWebResponse)ex.Response;
}
Stream answer = webResp.GetResponseStream();
StreamReader answerData = new StreamReader(answer);
returnData = answerData.ReadToEnd();
}
catch (Exception ex)
{
//Response.Write(ex.Message);
return ex.Message;
}
return returnData.Trim() + "\n";
}
接收:
using System;
using System.Text;
namespace HttpPostDemo.Receive
{
public partial class Receiver : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var inputStream = Request.InputStream;
var strLen = Convert.ToInt32(inputStream.Length);
var strArr = new byte[strLen];
inputStream.Read(strArr, 0, strLen);
var requestMes = Encoding.UTF8.GetString(strArr);
Response.Write(requestMes);
Response.End();
}
}
}
.Net HttpPost的发送和接收示例代码的更多相关文章
- (转载).Net HttpPost的发送和接收示例代码
HttpPost在不同系统进行数据交互的时候经常被使用.它的最大好处在于直接,不像Webservice或者WCF需要wsdl作为一个双方的"中介".在安全性上,往往通过IP限制的方 ...
- 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 ...
- Windows 和 Linux下使用socket下载网页页面内容(可设置接收/发送超时)的代码
主要难点在于设置recv()与send()的超时时间,具体要注意的事项,请看代码注释部分,下面是代码: #include <stdio.h> #include <sys/types. ...
- ActiveMQ笔记(1):编译、安装、示例代码
一.编译 虽然ActiveMQ提供了发布版本,但是建议同学们自己下载源代码编译,以后万一有坑,还可以尝试自己改改源码. 1.1 https://github.com/apache/activemq/r ...
- C# WebSocket 服务端示例代码 + HTML5客户端示例代码
WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System.Linq; using System. ...
- python开源项目及示例代码
本页面是俺收集的各种 Python 资源,不定期更新. 下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的:否则是 Python 语言内置的. 1 算法 1.1 字符串处理 ...
- DICOM医学图像处理:DIMSE消息发送与接收“大同小异”之DCMTK fo-dicom mDCM
背景: 从DICOM网络传输一文开始,相继介绍了C-ECHO.C-FIND.C-STORE.C-MOVE等DIMSE-C服务的简单实现,博文中的代码给出的实例都是基于fo-dicom库来实现的,原因只 ...
随机推荐
- iptables_forward
FORWARD 好了,我们接着往下走,这个包已经过了两个PREROUTING链了,这个时候,出现了一个分支转折的地方,也就是图中下方的那个菱形(FORWARD),转发!这里有一个对目的地址的判断(这里 ...
- postfix之dovecot
dovecot-1.0.rc14安装 注:我的系统是RHEL4一.RPM格式1.安装RPM包:2.编辑/etc/dovecot.conf其中,修改protocols = imap pop3 passd ...
- HDU 5784 (计算几何)
Problem How Many Triangles (HDU 5784) 题目大意 给定平面上的n个点(n<2000),询问可以组成多少个锐角三角形. 解题分析 直接统计锐角三角形较困难,考虑 ...
- 重装系统后删除Cygwin文件夹
1.右键点要删除Cygwin 文件夹,依次选属性-安全-高级-所有者-编辑,将所有者改为你的登录帐户,勾选下方“替换子容器和对象的所有者”. 2.在 属性-安全-高级对话框中选 权限选项卡,点更改权限 ...
- X86平台乱序执行简要分析(翻译为主)
多处理器使用松散的内存模型可能会非常混乱,写操作可能会无序,读操作可能会返回不是我们想要的值,为了解决这些问题,我们需要使用内存栅栏(memory fences),或者说内存屏障(memory bar ...
- sql server 内置ETL工具学习(一) BCP篇
sql server 内置ETL工具学习 常用的导入方式:bcp, BULK INSERT,OPENROWSET和 SSIS. BCP BCP全称BULK COPY PROGRAM 有以下特点: 命令 ...
- Eclipse 手机开发不能运行
ADB server didn't ACK问题 The connection to adb is down, and a severe error has occured. 1.先把eclipse关闭 ...
- css ul li 水平布局问题
可以有俩种方法,暂时只用float:left: 找到每一个li进行水平浮动 #hd_nav li{ border-right: 1px solid rgba(255,255,255,0.2); f ...
- php 小知识积累
1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id']的速度是$row[id]的7倍. 3.echo比print快,并且使用echo的多重 ...
- ZOJ 1110 Dick and Jane
原题链接 题目大意:Dick和Jane的年龄之和等于他们宠物的年龄,宠物之间的年龄关系XXX. 解法:小学奥数题目,枚举法. 参考代码: #include<iostream> #inclu ...