今天做小程序时,发现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[]请求相关推荐

  1. 静态html无法进行post请求,静态页接收post请求

    此文介绍使用 thinkjs 如何获取前端的请求参数. nginx静态html页面接收post请求,报405 not allowed错误 背景: 对接连连h5快捷支付时,需在连连支付成功页面点击返回商 ...

  2. nodejs接收get请求参数

    nodejs接收get请求参数 1.1-浏览器向服务器发送get请求参数的两种方式 1.2-服务端使用url模块解析get请求参数 在http协议中,一个完整的url路径如下图 通过下图我们可以得知, ...

  3. .net core 源码解析-web app是如何启动并接收处理请求

    最近.net core 1.1也发布了,蹒跚学步的小孩又长高了一些,园子里大家也都非常积极的在学习,闲来无事,扒拔源码,涨涨见识. 先来见识一下web站点是如何启动的,如何接受请求,.net core ...

  4. java webmethod 参数_java详解Spring接收web请求参数的方式

    本篇文章给大家带来的内容是java详解Spring接收web请求参数的方式 .有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 1 查询参数 请求格式:url?参数1=值1&参 ...

  5. python调用第三方接口获取数据_python调用接口,python接收post请求接口(附完整代码)...

    与Scala语言相比,Python有其独特的优势和广泛的应用,python调用接口,因此Spark也推出了PySpark,它在框架上提供了一个使用Python语言的接口,python接收post请求接 ...

  6. 91.接收用户请求包体的方式

    (1)接收客户端请求的包体:收完在转发还是边收边转发 Syntax: proxy_request_buffering on | off; Default : proxy_request_bufferi ...

  7. Java Socket 如何接收byte和String

    Java Socket 如何接收byte和String 一.发送byte[]与String 我们平时是怎么发送byte和String的呢?举例代码: String str = "hello ...

  8. 后端接收Get请求与Post请求 参数示例

    博主介绍: 22届计科专业毕业,来自湖南,主要是在CSDN记录一些自己在Java开发过程中遇到的一些问题,欢迎大家一起讨论学习,也欢迎大家的批评指正. 文章目录 前言 正文 接收Get请求的参数 不使 ...

  9. 接收Http请求的几种方式

    最近在开发过程中,遇到了我们公司的几个老项目,采用的是传统单体项目,这种项目之间需要交互,项目A请求项目B,B将结果回调给A,我们采用了Http Post请求的方式,在接收Http请求的时候,遇到了不 ...

最新文章

  1. PTA数据结构与算法题目集(中文)7-38
  2. 《Python核心编程》第二版第八章练习题答案 第二部分
  3. range在c语言中的意思,“range”的含义,你get到了吗?
  4. 成功解决ValueError: too many values to unpack (expected 2)
  5. VTK:可视化之Visualize2DPoints
  6. 使用ffmpeg合并视频文件的三种方法
  7. gcc与g++编译器
  8. angular ts 表格_angular表格内容滚动实现
  9. [设计模式] 23 访问者模式 visitor Pattern
  10. android 静态注册wifi广播,Android静态注册广播receiver检测WIFI连接状况变化
  11. 微信语音怎么转发给好友
  12. 【洛谷 2888】牛栏
  13. 0068 terra vista 4.0安装包及破解教程
  14. 【Android】NDK封装日志库
  15. 1.1 wamp/wnmp 环境搭建
  16. ROS真车篇(一)激光雷达SLAM建图+自主导航+RGB深度相机
  17. 【数据库】用户管理---君权神授
  18. CSS手机端的主界面
  19. 字符串首尾空格去除问题
  20. Subresource Integrity 介绍--SRI (Subresource Integrity) 的检查

热门文章

  1. 再让大家清爽一下,给加班的oscer们,哈
  2. 摘抄和总结--确保搞砸人工智能项目的十种方法
  3. linux7 多路径配置,redhat7.3多路径配置
  4. Linux 3.13.0删除了Netlink API函数genl_register_ops() / genl_unregister_ops()
  5. http传输字符编码与转义(深度好文)
  6. android开发那些事儿(三)--manifest文件中uses-sdk和project中target详解
  7. unity中使用protobuf-net
  8. MFC 教程【6_应用程序的退出 】
  9. 剑指 Offer 06. 从尾到头打印链表-力扣
  10. 查看创建的hive表对应的hdfs文件路径