一、工具类
using System; using System.Collections.Generic; using System.Configuration; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace sync { public class HttpApiHelper { /// <summary> /// HttpGet /// </summary> /// <param name="url"></param> /// <param name="result"></param> /// <returns></returns> public static int HttpGet(string url, string contenttype, string token, out string result) { result = ""; try { HttpWebRequest wbRequest = (HttpWebRequest)WebRequest.Create(url); wbRequest.Timeout = 3000; // 设置3秒超时 wbRequest.Proxy = null; wbRequest.Method = "GET"; wbRequest.ContentType = contenttype; // 令牌 if (!token.Equals("")) { wbRequest.Headers.Add("token", token); } HttpWebResponse wbResponse = (HttpWebResponse)wbRequest.GetResponse(); using (Stream responseStream = wbResponse.GetResponseStream()) { //using (StreamReader sReader = new StreamReader(responseStream, System.Text.Encoding.Default)) using (StreamReader sReader = new StreamReader(responseStream, Encoding.UTF8)) { result = sReader.ReadToEnd(); } } } catch (Exception e) { result = e.Message; return -1; // 出现异常,函数的返回值为-1。 } return 0; } /// <summary> /// HttpPost /// </summary> /// <param name="url"></param> /// <param name="sendData"></param> /// <param name="reslut"></param> /// <returns></returns> public static int HttpPost(string url, string sendData, string contenttype, string token, out string reslut) { reslut = ""; try { byte[] data = System.Text.Encoding.UTF8.GetBytes(sendData); HttpWebRequest wbRequest = (HttpWebRequest)WebRequest.Create(url); wbRequest.Proxy = null; wbRequest.Method = "POST"; //wbRequest.ContentType = "application/json"; //"application/x-www-form-urlencoded wbRequest.ContentType = contenttype; // "application/x-www-form-urlencoded"; wbRequest.ContentLength = data.Length; // 令牌 if (!token.Equals("")) { wbRequest.Headers.Add("token", token); } using (Stream wStream = wbRequest.GetRequestStream()) { wStream.Write(data, 0, data.Length); } // 获取响应 HttpWebResponse wbResponse = (HttpWebResponse)wbRequest.GetResponse(); using (Stream responseStream = wbResponse.GetResponseStream()) { using (StreamReader sReader = new StreamReader(responseStream, Encoding.UTF8)) { reslut = sReader.ReadToEnd(); } } } catch (Exception e) { reslut = e.Message; return -1; // 出现异常,函数的返回值为-1 } return 0; } } }
二、调用
string url_lh = "http://192.168.0.10:8080/api/openbill"; string token = ""; JObject obj_lh = new JObject(); obj_lh.Add("workbill_no", workbill_no); // 作业线票号 obj_lh.Add("line_no", line_no); // 行号 obj_lh.Add("inform_no", inform_no); // 通知单号 string result_lh = ""; HttpApiHelper.HttpPost(url_lh, obj_lh.ToString(), "application/json", token, out result_lh); tbLogLine.BeginInvoke(new Action(() => { tbLogLine.AppendText(result_lh + Environment.NewLine); })); JObject obj = (JObject)JsonConvert.DeserializeObject(result_lh); string code = obj["code"].ToString(); if (code.Equals("ok")) { result = "0"; } else if (code.Equals("-1")) { result = "-1"; }