b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

动态方法调用 为什么不安全 关于C#调用WebServices的方法(6)

电脑杂谈  发布时间:2018-02-06 22:03:04  来源:网络整理

java怎么使用递归调用_动态方法调用 为什么不安全_C  动态调用类

调用方法如下

Hashtable ht = new Hashtable();
            ht.Add("LoginName", "Admin");
            ht.Add("Password", "Password");
            ht.Add("Aey", "123");

var data = HttpHelper.WebServiceGet("http://localhost/OpenApi/MobileService.asmx", "Login", ht);

以下是 HTTP POST 请求和响应示例。所显示的占位符需替换为实际值。

POST /OpenApi/MobileService.asmx/Login HTTP/1.1
Host: gps.szwearable.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

LoginName=string&Password=string&Aey=string
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<boolean xmlns="http://tempuri.org/">boolean</boolean>

以上POST示例相应代码如下

         /// <summary>
        /// 需要WebService支持Post调用
        /// </summary>
        public static string PostWebService(String URL, String MethodName, Hashtable ht)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL + "/" + MethodName);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            // 凭证
            request.Credentials = CredentialCache.DefaultCredentials;
            //超时时间
            request.Timeout = 10000;
            var PostStr = HashtableToPostData(ht);
            byte[] data = System.Text.Encoding.UTF8.GetBytes(PostStr);
            request.ContentLength = data.Length;
            Stream writer = request.GetRequestStream();
            writer.Write(data, 0, data.Length);
            writer.Close();
            var response = request.GetResponse();
            var stream = response.GetResponseStream();
            StreamReader sr = new StreamReader(stream, Encoding.UTF8);
            String retXml = sr.ReadToEnd();
            sr.Close();
            return retXml;
        }

        private static String HashtableToPostData(Hashtable ht)
        {
            StringBuilder sb = new StringBuilder();
            foreach (string k in ht.Keys)
            {
                if (sb.Length > 0)
                {
                    sb.Append("&");
                }
                sb.Append(HttpUtility.UrlEncode(k) + "=" + HttpUtility.UrlEncode(ht[k].ToString()));
            }
            return sb.ToString();
        }

调用方法如下

在Web.config,那么只需要修改或添加这么一段

<webServices>

<protocols>

<add/>

<add/>

</protocols>

</webServices>

还有一个说是动态添加,可惜我还是没有用成功

附上此动态调用代码


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-65451-6.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 萧元之
      萧元之

      为何有关部门不出来表态

    热点图片
    拼命载入中...