[Anmerkungen] WebapiHelper-Hilfeklasse

using System;
using System.IO;
using System.Net;
using System.Text;

namespace Com.AUO.CAP.Library.Public.Utility
{
    public class WebApiHelper
    {
        #region 公共参数
        static string webApiUrl = System.Configuration.ConfigurationManager.AppSettings["WebApiUrl"];
        #endregion

        #region PostMethod
        public static string PostMethod(string postDataStr, string url)
        {
            url = webApiUrl + url;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/json";

            Stream myRequestStream = request.GetRequestStream();
            StreamWriter myStreamWriter = new StreamWriter(myRequestStream, System.Text.Encoding.UTF8);
            myStreamWriter.Write(postDataStr);
            myStreamWriter.Close();

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, System.Text.Encoding.UTF8);
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();

            return retString;
        }
        #endregion

        #region GetMethod
        public static string GetMethod(string url)
        {
            url = webApiUrl + url;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "GET";
            //request.ContentType = "text/html;charset=UTF-8"; 
            request.ContentType = "application/json";
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();
            return retString;
        }
        #endregion

        #region 异步调用Web API
        static byte[] postData = null;
        public void AsyncPostMethod(string postDataStr, string url)
        {
            url = webApiUrl + url;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.KeepAlive = true;
            request.Timeout = 300000;
            request.ContentType = "application/json";
            postData = Encoding.UTF8.GetBytes(postDataStr);
            request.BeginGetRequestStream(new AsyncCallback(RequestStreamCallBack), request);
        }

        public static void RequestStreamCallBack(IAsyncResult result)
        {
            HttpWebRequest request = (HttpWebRequest)result.AsyncState;
            Stream reqStream = request.EndGetRequestStream(result);
            reqStream.Write(postData, 0, postData.Length);
            reqStream.Close();

            request.BeginGetResponse(new AsyncCallback(ResponseCallBack), request);
        }

        public static void ResponseCallBack(IAsyncResult result)
        {
            try
            {
                HttpWebRequest req = (HttpWebRequest)result.AsyncState;
                HttpWebResponse response = (HttpWebResponse)req.EndGetResponse(result);

                using (Stream sw = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(sw))
                    {
                        string xmls = reader.ReadToEnd();
                    }
                }
                if (response != null) response.Close();
            }
            catch (Exception ex)
            {
                LogHelper.Write(ex.ToString(), LogCategory.Error, System.Diagnostics.TraceEventType.Information);
            }
        }
        #endregion
    }
}

 

Acho que você gosta

Origin blog.csdn.net/Csongxuan/article/details/84835633
Recomendado
Clasificación