webservic接收byte[]请求
今天做小程序时,发现httphelper有提交byte[]的功能,但webservice端接收时一直没有成功,找了很多方法,最终解决,记录下。
private void button2_Click(object sender, EventArgs e){Stopwatch st = new Stopwatch();st.Start();//生成datesetstring toDataTableSql = "select id, djbh ,dj_sn ,xgdjbh ,pihao ,pici ,spid from T_ywmxk where zhuangtai='" + ZhuangTai.待上传 + "'";DataSet ds = SqlHelper.ExecuteDataSet(CommandType.Text, toDataTableSql);byte[] Zipbuffer = DataFormatter.GetBinaryFormatData(ds);HttpHelper http = new HttpHelper();HttpItem item = new HttpItem(){URL = @"http://localhost:61839/SaveData.asmx/Adddataset",// URL = url,//URL这里都是测试URl 必需项Encoding = null,//编码格式(utf-8,gb2312,gbk)Method = "post",ContentType = "application/x-www-form-urlencoded",//返回类型 可选项有默认值,PostDataType = PostDataType.Byte,PostdataByte = Zipbuffer// Postdata ="data="+ HttpHelper.ByteToString(Zipbuffer) };//得到新的HTML代码HttpResult result = http.GetHtml(item);st.Stop();string str = st.ElapsedMilliseconds.ToString();}
webservice端接收:
[ValidateInput(false)][WebMethod]public void Adddataset(){Stream s = System.Web.HttpContext.Current.Request.InputStream;byte[] b = new byte[s.Length];s.Read(b, 0, (int)s.Length);DataSet dsData = DataFormatter.RetrieveDataSet(b);DataTable dt = dsData.Tables[0];StringBuilder str = new StringBuilder();int counts = 0;for (int d = 0; d < dt.Rows.Count; d++){T_ywmxk t = new T_ywmxk();_db.T_ywmxk.Add(t);t.CreateTime = DateTime.Now;t.djbh = dt.Rows[d]["djbh"].ToString();t.dj_sn = (int)dt.Rows[d]["dj_sn"];t.xgdjbh = dt.Rows[d]["xgdjbh"].ToString();t.pihao = dt.Rows[d]["pihao"].ToString();t.pici = dt.Rows[d]["pici"].ToString();t.spid = dt.Rows[d]["spid"].ToString();counts++;}_db.SaveChanges();str.Append("总计:" + dt.Rows.Count);Context.Response.Write(str.ToString());}
实现DataSet与byte[]的互转:
using System.Data; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary;namespace JiaRuiDataPost.MyClass {public class DataFormatter{private DataFormatter() { }/// <summary>/// Serialize the Data of dataSet to binary format/// </summary>/// <param name="dsOriginal"></param>/// <returns></returns>static public byte[] GetBinaryFormatData(DataSet dsOriginal){byte[] binaryDataResult = null;MemoryStream memStream = new MemoryStream();IFormatter brFormatter = new BinaryFormatter();dsOriginal.RemotingFormat = SerializationFormat.Binary;brFormatter.Serialize(memStream, dsOriginal);binaryDataResult = memStream.ToArray();memStream.Close();memStream.Dispose();return binaryDataResult;}/// <summary>/// Retrieve dataSet from data of binary format/// </summary>/// <param name="binaryData"></param>/// <returns></returns>static public DataSet RetrieveDataSet(byte[] binaryData){DataSet dataSetResult = null;MemoryStream memStream = new MemoryStream(binaryData);IFormatter brFormatter = new BinaryFormatter();object obj = brFormatter.Deserialize(memStream);dataSetResult = (DataSet)obj;return dataSetResult;}} }
转载于:https://www.cnblogs.com/swocn/p/6002264.html
webservic接收byte[]请求相关推荐
- 静态html无法进行post请求,静态页接收post请求
此文介绍使用 thinkjs 如何获取前端的请求参数. nginx静态html页面接收post请求,报405 not allowed错误 背景: 对接连连h5快捷支付时,需在连连支付成功页面点击返回商 ...
- nodejs接收get请求参数
nodejs接收get请求参数 1.1-浏览器向服务器发送get请求参数的两种方式 1.2-服务端使用url模块解析get请求参数 在http协议中,一个完整的url路径如下图 通过下图我们可以得知, ...
- .net core 源码解析-web app是如何启动并接收处理请求
最近.net core 1.1也发布了,蹒跚学步的小孩又长高了一些,园子里大家也都非常积极的在学习,闲来无事,扒拔源码,涨涨见识. 先来见识一下web站点是如何启动的,如何接受请求,.net core ...
- java webmethod 参数_java详解Spring接收web请求参数的方式
本篇文章给大家带来的内容是java详解Spring接收web请求参数的方式 .有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 1 查询参数 请求格式:url?参数1=值1&参 ...
- python调用第三方接口获取数据_python调用接口,python接收post请求接口(附完整代码)...
与Scala语言相比,Python有其独特的优势和广泛的应用,python调用接口,因此Spark也推出了PySpark,它在框架上提供了一个使用Python语言的接口,python接收post请求接 ...
- 91.接收用户请求包体的方式
(1)接收客户端请求的包体:收完在转发还是边收边转发 Syntax: proxy_request_buffering on | off; Default : proxy_request_bufferi ...
- Java Socket 如何接收byte和String
Java Socket 如何接收byte和String 一.发送byte[]与String 我们平时是怎么发送byte和String的呢?举例代码: String str = "hello ...
- 后端接收Get请求与Post请求 参数示例
博主介绍: 22届计科专业毕业,来自湖南,主要是在CSDN记录一些自己在Java开发过程中遇到的一些问题,欢迎大家一起讨论学习,也欢迎大家的批评指正. 文章目录 前言 正文 接收Get请求的参数 不使 ...
- 接收Http请求的几种方式
最近在开发过程中,遇到了我们公司的几个老项目,采用的是传统单体项目,这种项目之间需要交互,项目A请求项目B,B将结果回调给A,我们采用了Http Post请求的方式,在接收Http请求的时候,遇到了不 ...
最新文章
- PTA数据结构与算法题目集(中文)7-38
- 《Python核心编程》第二版第八章练习题答案 第二部分
- range在c语言中的意思,“range”的含义,你get到了吗?
- 成功解决ValueError: too many values to unpack (expected 2)
- VTK:可视化之Visualize2DPoints
- 使用ffmpeg合并视频文件的三种方法
- gcc与g++编译器
- angular ts 表格_angular表格内容滚动实现
- [设计模式] 23 访问者模式 visitor Pattern
- android 静态注册wifi广播,Android静态注册广播receiver检测WIFI连接状况变化
- 微信语音怎么转发给好友
- 【洛谷 2888】牛栏
- 0068 terra vista 4.0安装包及破解教程
- 【Android】NDK封装日志库
- 1.1 wamp/wnmp 环境搭建
- ROS真车篇(一)激光雷达SLAM建图+自主导航+RGB深度相机
- 【数据库】用户管理---君权神授
- CSS手机端的主界面
- 字符串首尾空格去除问题
- Subresource Integrity 介绍--SRI (Subresource Integrity) 的检查
热门文章
- 再让大家清爽一下,给加班的oscer们,哈
- 摘抄和总结--确保搞砸人工智能项目的十种方法
- linux7 多路径配置,redhat7.3多路径配置
- Linux 3.13.0删除了Netlink API函数genl_register_ops() / genl_unregister_ops()
- http传输字符编码与转义(深度好文)
- android开发那些事儿(三)--manifest文件中uses-sdk和project中target详解
- unity中使用protobuf-net
- MFC 教程【6_应用程序的退出 】
- 剑指 Offer 06. 从尾到头打印链表-力扣
- 查看创建的hive表对应的hdfs文件路径