.net post請求webservice


class Program
    {
        static void Main(string[] args)
        {
            var m = "m=" + JsonConvert.SerializeObject(new { age = 1, name = "jxp" });
            var a = HttpHelper.PostRequest("http://localhost:7132/Jxp.asmx/HelloWorld", DataTypeEnum.Form, m);
            var xmldoc = new XmlDocument();
            xmldoc.LoadXml(a);
            var nsMgr = new XmlNamespaceManager(xmldoc.NameTable); nsMgr.AddNamespace("ns", "http://tempuri.org/");
            XmlNode errorNode = xmldoc.SelectSingleNode("/ns:string", nsMgr);
            var b = JsonConvert.DeserializeObject(errorNode.InnerText);
            Console.WriteLine(b);
            Console.ReadKey();
        }
    }
控制台調用
[WebMethod]
public string HelloWorld(string m)
{
      return m;
}
webservice服務
public class HttpHelper
    {
        /// <summary>
        /// Post帶參請求
        /// </summary>
        /// <param name="url"></param>
        /// <param name="contentType">指定參數類型</param>
        /// <param name="strData"></param>
        /// <param name="dicHeader"></param>
        /// <returns></returns>
        public static string PostRequest(string url, DataTypeEnum contentType, string strData, Dictionary<string, string> dicHeader = null)
        {
            string result;
            var webRequest = WebRequest.Create(url);
            if (dicHeader != null)
                foreach (var m in dicHeader)
                {
                    webRequest.Headers.Add(m.Key, m.Value);
                }
            webRequest.Method = MethodTypeEnum.Post.ToString();
            webRequest.Proxy = null;
            if (contentType == DataTypeEnum.Form)
            {
                webRequest.ContentType = "application/x-www-form-urlencoded";
            }
            else
            {
                webRequest.ContentType = "application/" + contentType;
            }
            
            byte[] reqBodyBytes = System.Text.Encoding.UTF8.GetBytes(strData);
            Stream reqStream = webRequest.GetRequestStream();//加入需要發送的參數
            reqStream.Write(reqBodyBytes, 0, reqBodyBytes.Length);
            reqStream.Close();
            using (var reader = new StreamReader(webRequest.GetResponse().GetResponseStream()))
            {
                result = reader.ReadToEnd();
            }
            return result;
        }

        /// <summary>
        /// Get不帶參請求
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static string GetRequest(string url)
        {
            string result;
            WebRequest webRequest = WebRequest.Create(url);
            webRequest.Method = MethodTypeEnum.Get.ToString();
            webRequest.Proxy = null;
            using (var reader = new StreamReader(webRequest.GetResponse().GetResponseStream()))
            {
                result = reader.ReadToEnd();
            }
            return result;
        }
    }

    /// <summary>
    /// 帶參數據類型
    /// </summary>
    public enum DataTypeEnum
    {
        Json,
        Xml,
        Form
    }

    /// <summary>
    /// 帶參數據類型
    /// </summary>
    public enum MethodTypeEnum
    {
        Get,
        Post
    }
請求幫助類

 返回json

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM