using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1.Controller.CY_API
{
///
/// 第三方调用氚云接口
///
public class CY_API_Server
{
public CY_API_Server()
{
//
// TODO: Add constructor logic here
//
}
///
/// 氚云接口
///
/// CreateBizObjects
/// 数据集合
/// bool
///
public static string H3YunApi(string ActionName, Dictionary pargam, out bool sucessfull)
{
try
{
string webApiAddress = "https://www.h3yun.com/OpenApi/Invoke"; //接口地址
string engineCode = "aeonq7mdwwdbtdmamrf6ul441"; //Code
string secret = "EHSYxx7UvJETDyvcNiniOivlYlcE+zB29HdXZSNan9WBV+Rvv0tIaQ=="; //Secret
System.Net.HttpWebRequest request;
request = (System.Net.HttpWebRequest)WebRequest.Create(webApiAddress);
request.Method = "POST";
request.ContentType = "application/json";
//身份认证参数
request.Headers.Add("EngineCode", engineCode);
request.Headers.Add("EngineSecret", secret);
//参数
Dictionary dicParams = new Dictionary();
dicParams.Add("ActionName", ActionName);
//自定义参数
if (pargam != null && pargam.Count > 0)
{
foreach (KeyValuePair kv in pargam)
{
dicParams.Add(kv.Key, kv.Value);
}
}
string jsonData = JsonConvert.SerializeObject(dicParams);
byte[] bytes;
bytes = System.Text.Encoding.UTF8.GetBytes(jsonData);
request.ContentLength = bytes.Length;
string StrDate = string.Empty;
string strValue = string.Empty;
using (Stream writer = request.GetRequestStream())
{
writer.Write(bytes, 0, bytes.Length);
writer.Close();
}
using (System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse())
{
using (System.IO.Stream s = response.GetResponseStream())
{
using (StreamReader Reader = new StreamReader(s, Encoding.UTF8))
{
while ((StrDate = Reader.ReadLine()) != null)
{
strValue += StrDate + "\r\n";
}
}
}
}
sucessfull = true;
return strValue;
}
catch (Exception ee)
{
sucessfull = false;
return ee.ToString();
}
}
///
/// 查询单条业务数据
///
/// 调用的方法名
/// 需要查询的表单编码
/// 需要查询的数据ID,每个表单都有唯一的ObjectId
///
public static string LoadBizObject(string ActionName, string SchemaCode, string BizObjectId)
{
try
{
string ApiAddress = "https://www.h3yun.com/OpenApi/Invoke"; //接口地址
HttpWebRequest request = (System.Net.HttpWebRequest)WebRequest.Create(ApiAddress);
request.Method = "POST";
request.ContentType = "application/json";
//身份认证参数
request.Headers.Add("EngineCode", "aeonq7mdwwdbtdmamrf6ul441");
request.Headers.Add("EngineSecret", "EHSYxx7UvJETDyvcNiniOivlYlcE+zB29HdXZSNan9WBV+Rvv0tIaQ==");
//参数
Dictionary dicParams = new Dictionary();
dicParams.Add("ActionName", ActionName);
dicParams.Add("SchemaCode", SchemaCode);
dicParams.Add("BizObjectId", BizObjectId);
string jsonData = JsonConvert.SerializeObject(dicParams);
byte[] bytes;
bytes = System.Text.Encoding.UTF8.GetBytes(jsonData);
request.ContentLength = bytes.Length;
using (Stream writer = request.GetRequestStream())
{
writer.Write(bytes, 0, bytes.Length);
writer.Close();
}
string strValue = string.Empty;
using (System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse())
{
using (System.IO.Stream s = response.GetResponseStream())
{
string StrDate = string.Empty;
using (StreamReader Reader = new StreamReader(s, Encoding.UTF8))
{
while ((StrDate = Reader.ReadLine()) != null)
{
strValue += StrDate + "\r\n";
}
}
}
}
}
catch (Exception ex)
{
throw ex;
}
return null;
}
///
/// 批量查询业务数据
///
/// 调用的方法名
/// 需要查询的表单编码
/// 过滤条件。默认返回前500条数据
///
public static string LoadBizObjects(string ActionName, string SchemaCodem, string Filter)
{
try
{
string apiAddress = @"https://www.h3yun.com/OpenApi/Invoke";
HttpWebRequest request = (System.Net.HttpWebRequest)WebRequest.Create(apiAddress);
request.Method = "POST";
request.ContentType = "application/json";
//身份认证参数
request.Headers.Add("EngineCode", "aeonq7mdwwdbtdmamrf6ul441");
request.Headers.Add("EngineSecret", "EHSYxx7UvJETDyvcNiniOivlYlcE+zB29HdXZSNan9WBV+Rvv0tIaQ==");
//参数
Dictionary dicParams = new Dictionary();
dicParams.Add("ActionName", ActionName);
dicParams.Add("SchemaCode", SchemaCodem);
dicParams.Add("Filter", Filter);
string jsonData = JsonConvert.SerializeObject(dicParams);
byte[] bytes;
bytes = System.Text.Encoding.UTF8.GetBytes(jsonData);
request.ContentLength = bytes.Length;
using (Stream writer = request.GetRequestStream())
{
writer.Write(bytes, 0, bytes.Length);
writer.Close();
}
string strValue = string.Empty;
using (System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse())
{
using (System.IO.Stream s = response.GetResponseStream())
{
string StrDate = string.Empty;
using (StreamReader Reader = new StreamReader(s, Encoding.UTF8))
{
while ((StrDate = Reader.ReadLine()) != null)
{
strValue += StrDate + "\r\n";
}
}
}
}
return strValue;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 更新业务数据
///
/// 调用的方法名
/// 表单编码
/// 表单ObjectId值
/// BizObject对象的json 字符串
///
public static string UpdateBizObject(string ActionName, string SchemaCode, string BizObjectId, Dictionary BizObject)
{
try
{
string apiAddress = @"https://www.h3yun.com/OpenApi/Invoke";
HttpWebRequest request = (System.Net.HttpWebRequest)WebRequest.Create(apiAddress);
request.Method = "POST";
request.ContentType = "application/json";
//身份认证参数
request.Headers.Add("EngineCode", "aeonq7mdwwdbtdmamrf6ul441");
request.Headers.Add("EngineSecret", "EHSYxx7UvJETDyvcNiniOivlYlcE+zB29HdXZSNan9WBV+Rvv0tIaQ==");
//参数
Dictionary dicParams = new Dictionary();
dicParams.Add("ActionName", ActionName);
dicParams.Add("SchemaCode", SchemaCode);
//dicParams.Add("BizObject", "{ \"CreatedBy\": \"f3f69a49-edf6-468d-9aee-822cbc82a46662\", \"OwnerId\": \"f3f69a49-edf6-468d-9aee-822cbc82a46662\",\"F0000002\": \"99933399\", \"F0000009\": \"03ea2021-f7d5-4001-b996-7115e63f4319;6d1af175-a49d-48ad-bc3e-52aa35bb34df\" }");
if (BizObject != null && BizObject.Count > 0)
{
foreach (KeyValuePair kv in BizObject)
{
dicParams.Add(kv.Key, kv.Value);
}
}
dicParams.Add("BizObjectId", BizObjectId);
string jsonData = JsonConvert.SerializeObject(dicParams);
byte[] bytes;
bytes = System.Text.Encoding.UTF8.GetBytes(jsonData);
request.ContentLength = bytes.Length;
using (Stream writer = request.GetRequestStream())
{
writer.Write(bytes, 0, bytes.Length);
writer.Close();
}
string strValue = string.Empty;
using (System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse())
{
using (System.IO.Stream s = response.GetResponseStream())
{
string StrDate = string.Empty;
using (StreamReader Reader = new StreamReader(s, Encoding.UTF8))
{
while ((StrDate = Reader.ReadLine()) != null)
{
strValue += StrDate + "\r\n";
}
}
}
}
return strValue;
}
catch (Exception ex)
{
throw ex;
}
}
}
}