/// <summary> /// 设置凭证与超时时间 /// </summary> /// <param name="request"></param> private void SetWebRequest(HttpWebRequest request) { request.Credentials = CredentialCache.DefaultCredentials; request.Timeout = 60000; if (is_proxy != "0") { LogHelp.WriteInfoLog("JLF.Form.WebService", "代理服务器设置!"); ProxySetting(request, "http://" + proxy_host + ":" + proxy_port, proxy_user_name, proxy_password); } else { LogHelp.WriteInfoLog("JLF.Form.WebService", "代理服务器不设置!"); } }
/// <summary> /// 执行查询方法 /// </summary> /// <param name="_Url">Webservice Url 传null,系统默认url</param> /// <param name="MethodType">方法类型 POST GET SOAP</param> /// <param name="MethodName">方法名</param> /// <param name="Parms">参数集合</param> /// <param name="Msg">消息</param> /// <returns></returns> public ReturnMessage Execute_Get_Method(string _Url, string MethodType, string MethodName, Hashtable Parms, out string Msg) { Msg = string.Empty; ReturnMessage RMsg = new ReturnMessage(); XmlDocument xd = new XmlDocument(); if (!string.IsNullOrEmpty(_Url)) { m_url = _Url; } try { LogHelp.WriteInfoLog("JLFFormWebService", "Execute_Get_Method:" + MethodName + "(执行Payroll接口)"); switch (MethodType) { case WebMethodType.GET: xd = this.Execute_GetWebService(MethodName, Parms, out Msg); break; case WebMethodType.POST: xd = this.Execute_PostWebService(MethodName, Parms, out Msg); break; default: xd = this.Execute_SoapWebService(MethodName, Parms, null, out Msg); break; } try { LogHelp.WriteInfoLog("JLFFormWebService", "Execute_Get_Method:" + MethodName + "(调用成功,解析返回结果)"); string strReturnValue = xd.InnerText; RMsg.Status = true; RMsg.Message = "获取数据成功!"; RMsg.Entity = strReturnValue; LogHelp.WriteInfoLog("JLFFormWebService", "Execute_Get_Method:" + MethodName + "(解析返回结果成功)"); } catch (Exception ex) { Msg = @"返回值格式不正确,请检查!正确格式: <FlowER><Item><TextField>Text A</TextField><ValueField>Value A</ValueField></Item>...</FlowER>"; LogHelp.WriteInfoLog("JLFFormWebService", "Execute_Get_Method:" + MethodName + "(解析返回结果失败:" + Msg + ")"); throw new Exception(Msg); } } catch (Exception ex) { RMsg.Status = false; RMsg.Message = ex.Message; Msg = ex.Message; LogHelp.WriteInfoLog("JLFFormWebService", "Execute_Get_Method:" + MethodName + "(调用异常:" + Msg + ")"); } return(RMsg); }
/// <summary> /// 代理服务器设置 /// </summary> /// <param name="request"></param> /// <param name="ProxyAddress">代理服务地址</param> /// <param name="ProxyUser">用户</param> /// <param name="ProxyKey">密码</param> public void ProxySetting(WebRequest request, string ProxyAddress, string ProxyUser, string ProxyKey) { try { WebProxy proxy = new WebProxy(ProxyAddress, true); if (!string.IsNullOrEmpty(ProxyAddress) && !string.IsNullOrEmpty(ProxyUser) && !string.IsNullOrEmpty(ProxyKey)) //如果地址为空,则不需要代理服务器 { proxy.Credentials = new NetworkCredential(ProxyUser, ProxyKey); //从配置封装参数中创建 } request.Proxy = proxy; //赋予 request.Proxy LogHelp.WriteInfoLog("JLF.Form.WebService", "代理服务器设置成功!代理服务host和port:" + ProxyAddress + "用户名:" + ProxyUser); } catch (Exception ex) { LogHelp.WriteErrorLog("JLF.Form.WebService", "代理服务器设置失败!代理服务host和port:" + ProxyAddress + "用户名:" + ProxyUser + ",错误原因:" + ex.Message); } }
/// <summary> /// 执行Check方法 /// </summary> /// <param name="_Url">Webservice Url 传null,系统默认url</param> /// <param name="MethodType">方法类型 POST GET SOAP</param> /// <param name="MethodName">方法名</param> /// <param name="Parms">参数集合</param> /// <param name="Msg">消息</param> /// <returns></returns> public ReturnMessage Execute_Check_Method(string _Url, string MethodType, string MethodName, Hashtable Parms, out string Msg) { Msg = string.Empty; ReturnMessage RMsg = new ReturnMessage(); XmlDocument xd = new XmlDocument(); if (!string.IsNullOrEmpty(_Url)) { m_url = _Url; } try { LogHelp.WriteInfoLog("JLFFormWebService", "Execute_Check_Method:" + MethodName + "(执行Payroll接口)"); switch (MethodType) { case WebMethodType.GET: xd = this.Execute_GetWebService(MethodName, Parms, out Msg); break; case WebMethodType.POST: xd = this.Execute_PostWebService(MethodName, Parms, out Msg); break; default: xd = this.Execute_SoapWebService(MethodName, Parms, null, out Msg); break; } string strReturnValue = xd.InnerText; try { LogHelp.WriteInfoLog("JLFFormWebService", "Execute_Check_Method:" + MethodName + "(调用成功,解析返回结果)"); XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(strReturnValue); XmlNode objHeadNode = xdoc.SelectSingleNode("//Head"); RMsg.form_no = objHeadNode.SelectSingleNode("form_no").InnerText.Trim(); RMsg.Status = Convert.ToBoolean(objHeadNode.SelectSingleNode("Status").InnerText.Trim()); RMsg.Message = objHeadNode.SelectSingleNode("Message").InnerText.Trim(); LogHelp.WriteInfoLog("JLFFormWebService", "Execute_Check_Method:" + MethodName + "(解析返回结果成功)"); } catch (Exception ex) { Msg = @"返回值格式不正确,请检查!正确格式: <FlowER> <Head> <form_no>表单号</form_no> <Status>状态</Status> <Message>消息</Message> </Head> <Body> </Body> </FlowER>"; LogHelp.WriteInfoLog("JLFFormWebService", "Execute_Check_Method:" + MethodName + "(解析返回结果失败:" + Msg + ")"); throw new Exception(Msg); } } catch (Exception ex) { RMsg.Status = false; RMsg.Message = ex.Message; Msg = ex.Message; LogHelp.WriteInfoLog("JLFFormWebService", "Execute_Check_Method:" + MethodName + "(调用异常:" + Msg + ")"); } return(RMsg); }