【转】C# HttpWebRequest\HttpWebResponse\WebClient发送请求解析json数据

时间:2022-04-13 02:13:53

[csharp]  

 

======================================================================================================================================  

/// <summary>  

/// 日期:2016-2-4  

/// 备注:bug已修改,可以使用  

/// </summary>  

public static void Method1()  

{  

    try  

    {  

        string domain = "http://192.168.1.6:8098/";  

        string url = domain + "/Signin/LoginApi";  

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);  

        request.Method = "POST";  

        request.ContentType = "application/x-www-form-urlencoded";  

        request.ReadWriteTimeout = 30 * 1000;  

  

        ///添加参数  

        Dictionary<String, String> dicList = new Dictionary<String, String>();  

        dicList.Add("UserName", "test@qq.com");  

        dicList.Add("Password", "000000");  

        String postStr = buildQueryStr(dicList);  

        byte[] data = Encoding.UTF8.GetBytes(postStr);  

  

        request.ContentLength = data.Length;  

  

        Stream myRequestStream = request.GetRequestStream();  

        myRequestStream.Write(data, 0, data.Length);  

        myRequestStream.Close();  

  

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();  

        StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);  

        var retString = myStreamReader.ReadToEnd();  

        myStreamReader.Close();  

    }  

    catch (Exception ex)  

    {  

        log.Info("Entered ItemHierarchyController - Initialize");  

        log.Error(ex.Message);  

    }  

}  

======================================================================================================================================  

升级版本,提取到帮助类,封装对象

[csharp]  

 

using System;  

using System.Collections.Generic;  

using System.Configuration;  

using System.IO;  

using System.Net;  

using System.Text;  

using System.Web;  

  

namespace CMS.Common  

{  

    public class MyHttpClient  

    {  

        public string methodUrl = string.Empty;  

        public string postStr = null;  

  

        public MyHttpClient(String methodUrl)  

        {  

            this.methodUrl = methodUrl;  

        }  

  

        public MyHttpClient(String methodUrl, String postStr)  

        {