public void SendApiPostDataLogTest() { var url = "http://www.senparc.com"; var data = Guid.NewGuid().ToString();//随机字符串 SenparcTrace.SendApiLog(url, data); Assert.IsTrue(UnitTestHelper.CheckKeywordsExist(LogFilePath, url, data)); }
public void SendApiLogTest() { var url = "http://www.senparc.com"; var result = Guid.NewGuid().ToString();//随机字符串 SenparcTrace.SendApiLog(url, result); var dt1 = SystemTime.Now; while (SystemTime.DiffTotalMS(dt1) < 800) { //等待队列执行 } Assert.IsTrue(UnitTestHelper.CheckKeywordsExist(LogFilePath, url, result)); }
public void SendApiPostDataLogTest() { var url = "http://www.senparc.com"; var data = Guid.NewGuid().ToString();//随机字符串 SenparcTrace.SendApiLog(url, data); var dt1 = SystemTime.Now; while ((SystemTime.Now - dt1).TotalMilliseconds < 800) { //等待队列执行 } Assert.IsTrue(UnitTestHelper.CheckKeywordsExist(LogFilePath, url, data)); }
/// <summary> /// 向需要AccessToken的API发送消息的公共方法 /// </summary> /// <param name="accessToken">这里的AccessToken是通用接口的AccessToken,非OAuth的。如果不需要,可以为null,此时urlFormat不要提供{0}参数</param> /// <param name="urlFormat"></param> /// <param name="data">如果是Get方式,可以为null。在POST方式中将被转为JSON字符串提交</param> /// <param name="sendType">发送类型,POST或GET,默认为POST</param> /// <param name="timeOut">代理请求超时时间(毫秒)</param> /// <param name="checkValidationResult">验证服务器证书回调自动验证</param> /// <param name="jsonSetting">JSON字符串生成设置</param> /// <returns></returns> public static async Task <T> SendAsync <T>(IServiceProvider serviceProvider, string accessToken, string urlFormat, object data, HttpRequestType sendType = HttpRequestType.POST, int timeOut = CO2NET.Config.TIME_OUT, bool checkValidationResult = false, JsonSetting jsonSetting = null) { try { var url = string.IsNullOrEmpty(accessToken) ? urlFormat : string.Format(urlFormat, accessToken.AsUrlData()); switch (sendType) { case HttpRequestType.GET: return(await CO2NET.HttpUtility.Get.GetJsonAsync <T>(serviceProvider, url, afterReturnText : getFailAction).ConfigureAwait(false)); case HttpRequestType.POST: var jsonString = SerializerHelper.GetJsonString(data, jsonSetting); using (MemoryStream ms = new MemoryStream()) { var bytes = Encoding.UTF8.GetBytes(jsonString); await ms.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false); ms.Seek(0, SeekOrigin.Begin); //WeixinTrace.SendApiPostDataLog(url, jsonString);//记录Post的Json数据 SenparcTrace.SendApiLog(url, jsonString); //记录Post的Json数据 TODO:为 API 提供 NeuChar 层面的日志记录 //PostGetJson方法中将使用WeixinTrace记录结果 return(await CO2NET.HttpUtility.Post.PostGetJsonAsync <T>(serviceProvider, url, null, ms, timeOut : timeOut, afterReturnText : postFailAction, checkValidationResult : checkValidationResult).ConfigureAwait(false)); } default: throw new ArgumentOutOfRangeException(nameof(sendType)); } } catch (NeuCharAppApiRequestException ex) { ex.Url = urlFormat; throw; } }