ASP.Net Post方式获取数据流的一种简单写法

486 查看

最近在弄一些第三方的平台,经常调用第三方的接口实现某些特定的功能

在实现的同时基本上都需要本地的数据经过服务器在Request到第三方的服务器中处理,再返回相应的数据结构体:json/xml

以下是我总结的一个小方法,请农友们笑纳:

public static string PostWebReq(string PostUrl, string ParamData, Encoding DataEncode)
    {
      string ret = string.Empty;
      try
      {
        byte[] byteArray = DataEncode.GetBytes(ParamData);
        HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(PostUrl));
        webReq.Method = "POST";
        webReq.ContentType = "application/x-www-form-urlencoded";
        webReq.ContentLength = byteArray.Length;

        Stream newStream = webReq.GetRequestStream();
        newStream.Write(byteArray, 0, byteArray.Length);
        newStream.Close();

        HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
        StreamReader sr = new StreamReader(response.GetResponseStream(), DataEncode);
        ret = sr.ReadToEnd();

        sr.Close();
        response.Close();
        newStream.Close();
      }
      catch (WebException ex)
      {
        Log.WriteLog(LogFile.Error, ex.Message);
      }
      finally
      {
        Log.WriteLog(LogFile.Info, ret);
      }
      return ret;
    }