예제 #1
0
파일: TestBase.cs 프로젝트: topoai/PhpNuget
        public string GetRequest(string format, params string[] pars)
        {
            var request = (HttpWebRequest)WebRequest.Create(NugetHost.TrimEnd('/') + "/" + string.Format(format, pars).TrimStart('/'));

            request.Method = "GET";
            var response = (HttpWebResponse)request.GetResponse();

            return(new StreamReader(response.GetResponseStream()).ReadToEnd().Trim());
        }
예제 #2
0
파일: TestBase.cs 프로젝트: topoai/PhpNuget
        public string PostRequest(string format, string postData, params string[] pars)
        {
            var request = (HttpWebRequest)WebRequest.Create(NugetHost.TrimEnd('/') + "/" + string.Format(format, pars).TrimStart('/'));

            request.Method = "POST";
            var data = Encoding.ASCII.GetBytes(postData);

            using (var stream = request.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }

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

            return(new StreamReader(response.GetResponseStream()).ReadToEnd().Trim());
        }
예제 #3
0
파일: TestBase.cs 프로젝트: topoai/PhpNuget
        public string PostRequest(string format, byte[] data, params string[] pars)
        {
            var request = (HttpWebRequest)WebRequest.Create(NugetHost.TrimEnd('/') + "/" + string.Format(format, pars).TrimStart('/'));

            request.Method = "POST";

            request.ContentType = "multipart/form-data";
            request.Headers.Add("X-NUGET-APIKEY: " + this.NugetToken);
            //request.Headers.Add("TES_TDATA: TEST-DATA");
            request.ContentLength = data.Length;

            using (var stream = request.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }

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

            return(new StreamReader(response.GetResponseStream()).ReadToEnd().Trim());
        }
예제 #4
0
파일: TestBase.cs 프로젝트: topoai/PhpNuget
        public string UploadRequest(string format, string file, string method = "PUT", NameValueCollection nvc = null, params string[] pars)
        {
            var url = NugetHost.TrimEnd('/') + "/" + string.Format(format, pars).TrimStart('/');

            long   length   = 0;
            string boundary = "-----------------------------" +
                              DateTime.Now.Ticks.ToString("x");


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

            httpWebRequest2.ContentType = "multipart/form-data; boundary=" + boundary;

            httpWebRequest2.Headers.Add("X-NUGET-APIKEY: " + this.NugetToken);
            httpWebRequest2.Method      = method;
            httpWebRequest2.KeepAlive   = true;
            httpWebRequest2.Credentials =
                System.Net.CredentialCache.DefaultCredentials;



            Stream memStream = new System.IO.MemoryStream();

            byte[] boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" +
                                                                       boundary + "\r\n");


            string formdataTemplate = "\r\n--" + boundary +
                                      "\r\nContent-Disposition: form-data; name=\"{0}\";\r\n\r\n{1}";

            if (nvc != null)
            {
                foreach (string key in nvc.Keys)
                {
                    string formitem      = string.Format(formdataTemplate, key, nvc[key]);
                    byte[] formitembytes = System.Text.Encoding.UTF8.GetBytes(formitem);
                    memStream.Write(formitembytes, 0, formitembytes.Length);
                }
            }


            memStream.Write(boundarybytes, 0, boundarybytes.Length);

            string headerTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n Content-Type: application/octet-stream\r\n\r\n";

            //for (int i = 0; i < files.Length; i++)
            {
                //string header = string.Format(headerTemplate, "file" + i, files[i]);
                string header = string.Format(headerTemplate, "uplTheFile", file);//s[i]);

                byte[] headerbytes = System.Text.Encoding.UTF8.GetBytes(header);

                memStream.Write(headerbytes, 0, headerbytes.Length);


                FileStream fileStream = new FileStream(file, FileMode.Open,
                                                       FileAccess.Read);
                byte[] buffer = new byte[1024];

                int bytesRead = 0;

                while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
                {
                    memStream.Write(buffer, 0, bytesRead);
                }


                memStream.Write(boundarybytes, 0, boundarybytes.Length);


                fileStream.Close();
            }

            httpWebRequest2.ContentLength = memStream.Length;

            Stream requestStream = httpWebRequest2.GetRequestStream();

            memStream.Position = 0;
            byte[] tempBuffer = new byte[memStream.Length];
            memStream.Read(tempBuffer, 0, tempBuffer.Length);
            memStream.Close();
            requestStream.Write(tempBuffer, 0, tempBuffer.Length);
            requestStream.Close();


            WebResponse webResponse2 = httpWebRequest2.GetResponse();

            Stream       stream2 = webResponse2.GetResponseStream();
            StreamReader reader2 = new StreamReader(stream2);


            var result = reader2.ReadToEnd();

            webResponse2.Close();
            httpWebRequest2 = null;
            webResponse2    = null;
            return(result);
        }