建立Web Service 接口及调用
WEB SERVICE 接口:
[WebMethod]
public string MaterialRequest(string jsonText)
{
string WorkNo;
string PN;
string PN_Name;
string Unit;
int Qty;
string Need_time="";
try
{
//jsonText格式: [{"WorkNo": "100001", "PN": "300003398", "PN_Name": "电容器,呃呃按时","Unit": "只","Qty": "5000","Need_time": "2020-1-20"},{"WorkNo": "100001", "PN": "300003397", "PN_Name": "电容器,呃呃按时","Unit": "只","Qty": "5000","Need_time": "2020-1-20"}]
JArray ja = (JArray)JsonConvert.DeserializeObject(jsonText);
//获取数值
if (ja.Count < 1) return "-1";
WorkNo = ja[0]["WorkNo"].ToString();
string sql = @"select * from WMS_KR_Task where taskno='" + WorkNo + "'";
DataTable dt = SqlHelper.ExecuteDataTable(sql);
if (dt == null) return "-1";
if (dt.Rows.Count > 0) return "1"; //已经存在
sql = "";
int counter = 0;
foreach (JObject jo in ja)
{
WorkNo = jo["WorkNo"].ToString();
PN = jo["PN"].ToString();
PN_Name = jo["PN_Name"].ToString();
Unit = jo["Unit"].ToString();
Qty = int.Parse(jo["Qty"].ToString());
Need_time = jo["Need_time"].ToString();
counter++;
sql += string.Format(@"INSERT INTO WMS_KR_Pick_Detail_From_MES(WorkNo, PN, PN_Name, Unit, Qty, Need_time) VALUES('{0}','{1}','{2}','{3}',{4},'{5}'); ", WorkNo, PN, PN_Name, Unit, Qty, Need_time);
}
sql += string.Format(@"insert into WMS_KR_TASK(TaskNo,TaskType,TaskStatus,TotalCount,ItemCount,FinishCount,RequiredTime) values('{0}',{1},{2},{3},{4},{5},'{6}');", WorkNo, (int)TaskTypeEnum.VerticalBank, (int)TaskStatusEnum.Initial, counter, counter, 0, Need_time);
SqlHelper.ExecSqlWithTrans1(sql);
return "0";
}
catch(Exception e)
{
return "-1";
}
}
C# Http Post 调用:
public void PostText()
{
string url = "http://localhost:80/WebService.asmx";
string method = "MaterialRequest";
string jsondata = "[{\"WorkNo\": \"100001\", \"PN\": \"300003398\", \"PN_Name\": \"电容器,呃呃按时\",\"Unit\": \"只\",\"Qty\": \"5000\",\"Need_time\": \"2020 - 1 - 20\"},{\"WorkNo\": \"100001\", \"PN\": \"300003397\", \"PN_Name\": \"电容器,呃呃按时\",\"Unit\": \"只\",\"Qty\": \"5000\",\"Need_time\": \"2020 - 1 - 20\"}]";
string result = HttpPostWebService(url, method, jsondata);
Console.WriteLine(result);
}
public string HttpPostWebService(string url, string method,string jsondata)
{
string result = string.Empty;
string param = string.Empty;
byte[] bytes = null;
Stream writer = null;
HttpWebRequest request = null;
HttpWebResponse response = null;
param = HttpUtility.UrlEncode("jsonText") + "=" + HttpUtility.UrlEncode(jsondata);
bytes = Encoding.UTF8.GetBytes(param);
request = (HttpWebRequest)WebRequest.Create(url + "/" + method);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = bytes.Length;
try
{
writer = request.GetRequestStream(); //获取用于写入请求数据的Stream对象
}
catch (Exception ex)
{
return "-1";
}
writer.Write(bytes, 0, bytes.Length); //把参数数据写入请求数据流
writer.Close();
try
{
response = (HttpWebResponse)request.GetResponse(); //获得响应
}
catch (WebException ex)
{
return "-1";
}
// web service 返回的是XML ,所有需要这么读取
#region 这种方式读取到的是一个返回的结果字符串
Stream stream = response.GetResponseStream(); //获取响应流
XmlTextReader Reader = new XmlTextReader(stream);
Reader.MoveToContent();
result = Reader.ReadInnerXml();
#endregion
// 控制器方法返回的是字符串,不管是不是XML,不能用上面的方法读取,而只能用这个方法读取返回的字符。
#region 这种方式读取到的是一个Xml格式的字符串
//StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
//result = reader.ReadToEnd();
#endregion
response.Dispose();
response.Close();
Reader.Dispose();
Reader.Close();
stream.Dispose();
stream.Close();
return result;
}
注意:下一行是否注释都能正常执行

下面是C#环境的测试界面:

如果按照上面的URL:http://localhost:6311/WebService.asmx?op=MaterialRequest 执行错误。
URL必须用: http://localhost:80/WebService.asmx/MaterialRequest
建立Web Service 接口及调用的更多相关文章
- 使用wsimport和JAX-WS调用Web Service接口
本文简单举例说明如何使用wsimport工具和JAX-WS API调用Web Service接口.此方法的优点:使用JDK自带的工具和API接口,无需依赖第三方库. JDK版本:1.8.0_141开发 ...
- ServiceStack Web Service 创建与调用简单示列
目录 ServiceStack 概念 ServiceStack Web Service 创建与调用简单示列 上篇文章介绍了ServiceStack是什么,本章进入主题,如何快速简单的搭建Service ...
- 统计随机数及临界值Web Service接口
(2017-02-04 银河统计) 统计函数API概念 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发 ...
- 在网页中运用统计Web Service接口
(2017-02-10 银河统计) 在"统计随机数及临界值Web Service接口"一文中介绍了常用统计分布四类Web Service接口(随机数.分位数.密度函数和累积分布函数 ...
- 通过ajax访问Tomcat服务器web service接口时出现No 'Access-Control-Allow-Origin' header问题的解决办法
问题描述 通过ajax访问Web服务器(Tomcat7.0.42)中的json web service接口的时候,报以下跨域问题: XMLHttpRequest cannot load http:// ...
- 免费的天气Web Service接口
免费的天气Web Service接口 在android应用当中很多时候需要获取天气的信息,这里提供怎么获取天气信息: 1. http://www.ayandy.com/Service.asmx?wsd ...
- 使用JDK自带功能,实现一个简单的Web Service接口发布
万事开头难,本篇文章的目的就是使用JDK自带的功能,实现一个最简单的Web Service接口的发布. 下图是项目的组成,主要有三个部分,一个接口(WS),一个接口的实现类(WSImp),还有一个接口 ...
- web service client端调用服务器接口
打开项目的web service client 其中wsdl URL http://www.51testing.com/html/55/67755-848510.html 去这里面查找一些公开的 ...
- web service接口 wsdl和asmx有什么区别
没有区别,只是后缀名的区别.Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立 ...
随机推荐
- vjudge I - Vladik and fractions 一道小学生的提。
原题链接:https://vjudge.net/contest/331993#problem/I Vladik and Chloe decided to determine who of them i ...
- Wannafly Camp 2020 Day 1C 染色图 - 组合数学,整除分块
定义一张无向图 G=⟨V,E⟩ 是 k 可染色的当且仅当存在函数 f:V↦{1,2,⋯,k} 满足对于 G 中的任何一条边 (u,v),都有 f(u)≠f(v). 定义函数 g(n,k) 的值为所有包 ...
- S3C2440的时钟原理
Crystal 无源晶体Oscillator 有源晶体(里面有有源器件) 无源晶振内只有一片按一定轴向切割的石英晶体薄片,供接入运放(或微处理器的XTAL端) 以形成振荡.有源晶振内带运放,工作在最佳 ...
- Python自定义任务发邮件提醒
前言 在工作中,有时会有一些定期需要执行的任务或在将来某一天需要执行的任务,为避免疏漏,设计个小工具,发邮件提醒自己去处理. 方案简介 1.建立一个Excel文件,里面定义好待提醒的任务 2.建立一个 ...
- 一文带你看清HTTP所有概念(转)
一文带你看清HTTP所有概念 上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性.我们接着上篇文章没有说完的 HTTP 标头继 ...
- liunx 中设置zookeeper 自启动(service zookeeper does not support chkconfig)
在liunx 上设置zookeeper 自启动 1.进入目录 cd /etc/init.d 2.创建一个文件 vim zookeeper 3.编辑zookeepr 文件 连接liunx使用的软件是fi ...
- javaScript--ECMAScript 6
ECMAScript 6 一.ECMAScript 6 简介 1.ECMAScript 和 JavaScript 的关系 一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关 ...
- python&selenium自动化测试实战项目
https://www.cnblogs.com/linuxchao/p/linuxchao-python-selenium-demo.html
- 使用Python发送、订阅消息
使用Python发送.订阅消息 使用插件 paho-mqtt 官方文档:http://shaocheng.li/post/blog/2017-05-23 Paho 是一个开源的 MQTT 客户端项目, ...
- 《TCP/IP入门经典》摘录--Part 2
TCP/IP协议系统 1.网络访问层 网卡(network adapter),即网络接口板,又称网络适配器或NIC (网络接口控制器),是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件,由 ...