一、 HttpWebRequest 方式

  支持.net 4.5 以下。一些老项目无法升级高版本的项目还用的到。例如支持XP系统的winfrom程序

可以携带cookie,使用HttpWebRequest的SupportsCookieContainer属性

public string HttpRequest()
{
    HttpWebResponse response = null;
    StreamReader resultReader = null;
    Dictionary<string, object> parameter = new Dictionary<string, object>()
    {
        { "p1","v1"},
        { "p2","v2"}
    };
    var parameterString = JsonConvert.SerializeObject(parameter);
    try
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("htt://url");
        request.Method = "POST";
        request.ContentType = "application/json; charset=UTF-8";
        request.Headers = new WebHeaderCollection
        {
            { "Header1", "v1" },
            { "Header2", "v2" }
        };
        //设置参数
        byte[] data = Encoding.UTF8.GetBytes(parameterString);
        request.ContentLength = data.Length;
        using (Stream newStream = request.GetRequestStream())
        {
            newStream.Write(data, 0, data.Length);
        };
        //获取正确或错误结果
        try
        {
            response = (HttpWebResponse)request.GetResponse();
        }
        catch (WebException ex)
        {
            response = (HttpWebResponse)ex.Response;
        }
        Stream webStream = response.GetResponseStream();
        if (webStream == null)
        {
            throw new Exception("Network error");
        }
        int statsCode = (int)response.StatusCode;

        resultReader = new StreamReader(webStream, Encoding.UTF8);
        string responseContent = resultReader.ReadToEnd();

        //如果http请求响应非200,则异常 
        if (statsCode != 200)
        {
            throw new Exception(statsCode.ToString());
        }
        return responseContent;

    }
    catch (Exception e)
    {
        throw e;
    }
    finally
    {
        if (response != null)
            response.Close();
        if (resultReader != null)
            resultReader.Close();
    }
}
View Code

相关文章:

  • 2022-12-23
  • 2021-07-30
  • 2022-12-23
  • 2021-06-19
  • 2021-07-29
猜你喜欢
  • 2021-05-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-03
  • 2022-12-23
相关资源
相似解决方案