/// <summary> /// 获取Xml结果 /// </summary> /// <param name="messageHandler"></param> /// <param name="url"></param> /// <param name="token"></param> /// <param name="xml"></param> /// <param name="timeOut">代理请求超时时间(毫秒)</param> /// <returns></returns> public static string RequestXml(this IMessageHandlerBase messageHandler, string url, string token, string xml, int timeOut = AGENT_TIME_OUT) { if (messageHandler != null) { messageHandler.UsedMessageAgent = true; } using (MemoryStream ms = new MemoryStream()) { //这里用ms模拟Request.InputStream using (StreamWriter sw = new StreamWriter(ms)) { sw.Write(xml); sw.Flush(); sw.BaseStream.Position = 0; return(messageHandler.RequestXml(url, token, sw.BaseStream, timeOut: timeOut)); } } }
/// <summary> /// 对接 NeuChar 平台,获取Xml结果,使用WeiWeiHiKey对接 /// WeiWeiHiKey的获取方式请看: /// </summary> /// <param name="messageHandler"></param> /// <param name="weiweihiKey"></param> /// <param name="xml"></param> /// <param name="neucharDomainName"></param> /// <param name="timeOut">代理请求超时时间(毫秒)</param> /// <returns></returns> public static string RequestNeuCharXml(this IMessageHandlerBase messageHandler, string weiweihiKey, string xml, string neucharDomainName = "www.neuchar.com", int timeOut = AGENT_TIME_OUT) { if (messageHandler != null) { messageHandler.UsedMessageAgent = true; } var url = "https://" + neucharDomainName + "/App/Weixin?neuCharKey=" + weiweihiKey;//官方地址 using (MemoryStream ms = new MemoryStream()) { //这里用ms模拟Request.InputStream using (StreamWriter sw = new StreamWriter(ms)) { sw.Write(xml); sw.Flush(); sw.BaseStream.Position = 0; return(messageHandler.RequestXml(url, weiweihiKey, sw.BaseStream, timeOut: timeOut)); } } }
/// <summary> /// 获取ResponseMessge结果 /// </summary> /// <param name="messageHandler"></param> /// <param name="serviceProvider">.NET Core 的 ServiceProvider(.NET Framework 可设为 null)</param> /// <param name="autoFillUrlParameters">是否自动填充Url中缺少的参数(signature、timestamp、nonce),默认为 true</param> /// <param name="url"></param> /// <param name="token"></param> /// <param name="xml"></param> /// <param name="timeOut">代理请求超时时间(毫秒)</param> /// <returns></returns> public static IResponseMessageBase RequestResponseMessage(this IMessageHandlerBase messageHandler, IServiceProvider serviceProvider, string url, string token, string xml, bool autoFillUrlParameters = true, int timeOut = AGENT_TIME_OUT) { return(messageHandler.RequestXml(serviceProvider, url, token, xml, autoFillUrlParameters, timeOut).CreateResponseMessage(messageHandler.MessageEntityEnlightener)); }
/// <summary> /// 获取ResponseMessge结果 /// </summary> /// <param name="messageHandler"></param> /// <param name="url"></param> /// <param name="token"></param> /// <param name="xml"></param> /// <param name="timeOut">代理请求超时时间(毫秒)</param> /// <returns></returns> public static IResponseMessageBase RequestResponseMessage(this IMessageHandlerBase messageHandler, string url, string token, string xml, int timeOut = AGENT_TIME_OUT) { return(messageHandler.RequestXml(url, token, xml, timeOut).CreateResponseMessage(messageHandler.MessageEntityEnlightener)); }
/// <summary> /// 获取ResponseMessge结果 /// </summary> /// <param name="messageHandler"></param> /// <param name="autoFillUrlParameters">是否自动填充Url中缺少的参数(signature、timestamp、nonce),默认为 true</param> /// <param name="url"></param> /// <param name="token"></param> /// <param name="stream"></param> /// <param name="timeOut">代理请求超时时间(毫秒)</param> /// <returns></returns> public static IResponseMessageBase RequestResponseMessage(this IMessageHandlerBase messageHandler, string url, string token, Stream stream, bool autoFillUrlParameters = true, int timeOut = AGENT_TIME_OUT) { return(messageHandler.RequestXml(url, token, stream, autoFillUrlParameters: autoFillUrlParameters, timeOut: timeOut).CreateResponseMessage(messageHandler.MessageEntityEnlightener)); }