实现数据推送源码
用object data接收任意类型,再通过JsonConvert.SerializeObject()转json传给服务器
public string JiudingDataPush(object data, string code)
{
try
{
string json = JsonConvert.SerializeObject(data);
//地址配置判断
string url = ConfigurationManager.AppSettings["JDApi"];
if (string.IsNullOrEmpty(url)) return "接口地址未配置";
//传值——地址请求,地址+路径
string response = new HttpTool().Post(url + "/api/syncData", json );
//返回结果判断
if (string.IsNullOrEmpty(response)) return "接口调用失败,返回值为空";
//json结果实例化
var responsemodel = FromJson<JuidingRespon>(response);
//接口判断
if (responsemodel.code != 1001)
{
return "接口调用失败:" + responsemodel.msg;
}
else
{
return "OK";
}
}
catch (Exception ex)
{
return ex.Message;
}
}
属性和构造函数
#region 属性
public Encoding encoding { get; set; }
public string contentType { get; set; }
#endregion
#region 构造函数
public HttpTool()
{
if (encoding == null) encoding = System.Text.Encoding.GetEncoding("UTF-8");
if (string.IsNullOrEmpty(contentType)) contentType = "application/json";
}
#endregion
数据请求方法
public string Post(string url, string param)
{
//日志记录
LogHelper.WriteErrorLog($"url:{url},param:{param ?? ""}");
string result = "";
Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
byte[] data = this.encoding.GetBytes(param);
try
{
// 设置参数
request = WebRequest.Create(url) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Method = "POST";
request.ContentType = this.contentType;
request.ContentLength = data.Length;
outstream = request.GetRequestStream();
outstream.Write(data, 0, data.Length);
outstream.Close();
//发送请求并获取相应回应数据
response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
instream = response.GetResponseStream();
sr = new StreamReader(instream, encoding);
//返回结果网页(html)代码
return sr.ReadToEnd();
}
catch (Exception ex) {
result = ex.Message;
LogHelper.WriteErrorLog($"response:{result}");
}
return result;
}
web.config配置ConfigurationManager.AppSettings[“JDApi”];
value填写 的是地址路径