Beispiel #1
0
        public PlugInFile[] DownloadPlugIn(PlugInDescription plDescription)
        {
            List <PlugInFile> plFile = new List <PlugInFile>();

            foreach (string strFile in plDescription.Files)
            {
                HttpWebRequest webRequest = CreateWebRequest(new Uri(uriRepository, strFile));

                webRequest.Method = "GET";

                HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
                try
                {
                    string strContentDispositionHeader = webResponse.GetResponseHeader("Content-Disposition");
                    string strFileName = "";
                    byte[] bContent;

                    if (webResponse.StatusCode != HttpStatusCode.OK)
                    {
                        throw new WebException("The server response included an error: " + (int)webResponse.StatusCode + " " + webResponse.StatusCode.ToString());
                    }

                    if (strContentDispositionHeader != null && strContentDispositionHeader.Contains("filename="))
                    {
                        strFileName = strContentDispositionHeader.Substring(strContentDispositionHeader.IndexOf("filename=") + "filename=".Length);
                    }
                    else
                    {
                        throw new Exception("The name of the file to download was not given by the server (There was no Content-Disposition header).");
                    }

                    Stream sContent = webResponse.GetResponseStream();

                    BinaryReader sReader = new BinaryReader(sContent);

                    bContent = sReader.ReadBytes((int)sContent.Length);

                    sReader.Close();
                    sContent.Close();

                    plFile.Add(new PlugInFile(strFileName, bContent, webRequest.MediaType));
                }
                finally
                {
                    webResponse.Close();
                }
            }

            return(plFile.ToArray());
        }
Beispiel #2
0
        public PlugInDescription[] GetPlugIns(string[] strPlugInKeys)
        {
            PlugInDescription[] arPlugIns = new PlugInDescription[0];

            HttpWebRequest webRequest = CreateWebRequest(uriRepository);

            webRequest.Method      = "POST";
            webRequest.ContentType = "application/xml";

            Stream sStream = webRequest.GetRequestStream();

            try
            {
                WritePlugInRequest(strPlugInKeys, sStream);
            }
            finally
            {
                sStream.Close();
            }

            HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();

            try
            {
                if (webResponse.StatusCode != HttpStatusCode.OK)
                {
                    throw new WebException("The server response included an error: " + (int)webResponse.StatusCode + " " + webResponse.StatusCode.ToString());
                }

                Stream sResponseStream = webResponse.GetResponseStream();

                arPlugIns = ReadPlugInsFromStream(sResponseStream);

                sResponseStream.Close();
            }
            finally
            {
                webResponse.Close();
            }

            return(arPlugIns);
        }