コード例 #1
0
        /// <summary>
        /// Runs a generic JIRA REST POST with multi-part data
        /// </summary>
        /// <param name="resource">The resource we're accessing</param>
        /// <param name="argument">The URL querystring arguments</param>
        /// <param name="data">The POST multi-part data</param>
        /// <param name="method">The HTTP method</param>
        protected string RunMultiPartQuery(JiraResource resource, string argument = null, byte[] data = null, string filename = "")
        {
            string url = string.Format("{0}{1}{2}/", baseUrl, API_PATH, resource.ToString());

            if (argument != null)
            {
                url = string.Format("{0}{1}", url, argument);
            }

            //Create the request
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;

            //Add headers and credentials
            request.Headers.Add("X-Atlassian-Token: nocheck");
            request.UseDefaultCredentials = this.UseDefaultCredentials;
            string base64Credentials = GetEncodedCredentials();

            request.Headers.Add("Authorization", "Basic " + base64Credentials);

            Stream          stream   = new MemoryStream(data);
            UploadFile      file     = new UploadFile(stream, "file", filename, "application/octet-stream");
            HttpWebResponse response = HttpUploadHelper.Upload(request, new UploadFile[] { file });

            string result = string.Empty;

            using (StreamReader reader = new StreamReader(response.GetResponseStream()))
            {
                result = reader.ReadToEnd();
            }

            return(result);
        }
コード例 #2
0
ファイル: ViewContent.cs プロジェクト: fizikci/Cinar
        private void btnKaydet_Click(object sender, EventArgs e)
        {
            NameValueCollection postData = getContentDataAsNameValue();

            if (CurrentContentId == 0)
            {
                postData["Metin"] = postData["Metin"];
            }

            string res = "";

            if (PictureChanged)
            {
                var files = new UploadFile[1];
                files[0] = new UploadFile(editPicture.Tag.ToString(), "Picture", "image/jpg");

                res = HttpUploadHelper.Upload(Settings.Load().SiteAddress[Index].Trim('/') + "/UploadContent.ashx", files, postData);
            }
            else
            {
                res = HttpUploadHelper.Upload(Settings.Load().SiteAddress[Index].Trim('/') + "/UploadContent.ashx", new UploadFile[0], postData);
            }

            Content c = JsonConvert.DeserializeObject <Content>(res);

            CurrentContentId = c.Id;
            if (!string.IsNullOrWhiteSpace(c.Picture))
            {
                PictureChanged            = false;
                editPicture.ImageLocation = Settings.Load().SiteAddress[Index].Trim('/') + c.Picture;
                editPicture.Refresh();
            }

            MessageBox.Show("Kaydedildi (Id: " + CurrentContentId + ")", "Cinar CMS Desktop Editor");
        }
コード例 #3
0
 public CUEToolsDB(CDImageLayout toc, IWebProxy proxy)
 {
     this.toc                  = toc;
     this.length               = (int)toc.AudioLength * 588;
     this.proxy                = proxy;
     this.uploadHelper         = new HttpUploadHelper();
     this.QueryExceptionStatus = WebExceptionStatus.Pending;
     this.connectTimeout       = 15000;
     this.socketTimeout        = 30000;
 }
コード例 #4
0
        public SimpleActionResult SendFile(Stream fileStream, string fileName, string id, string scope, bool shouldCloseStream = true)
        {
            var url = GetUrl(
                Action.put,
                fileName,
                id,
                scope);

            var br = new BinaryReader(fileStream);

            while (true)
            {
                var total = br.BaseStream.Length;
                var start = br.BaseStream.Position;
                var end   = total - start > _chunkSize ? start + _chunkSize - 1 : total - 1;

                var form = new NameValueCollection {
                    { "start", start.ToString() }, { "end", end.ToString() }, { "total", total.ToString() }
                };

                using (var chunk = new MemoryStream(br.ReadBytes((int)(end - start + 1))))
                {
                    var files = new[] { new UploadFile(chunk, "data", fileName, "application/octet-stream") };
                    using (var response = HttpUploadHelper.Upload((HttpWebRequest)WebRequest.Create(url), files, form))
                    {
                        var result = CheckResponseStatusCode(response);
                        if (result.Status == ActionStatus.Error)
                        {
                            return(result);
                        }
                    }
                }

                if (end == total - 1)
                {
                    break;
                }
            }

            if (shouldCloseStream)
            {
                br.Close();
            }

            return(new SimpleActionResult()
            {
                Status = ActionStatus.Ok
            });
        }
コード例 #5
0
ファイル: Apigee.Net.45.cs プロジェクト: sami1971/Apigee.Net
        public ReturnT PerformPost <PostT, ReturnT>(string url, PostT postData, Dictionary <string, string> files)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

            Dictionary <string, string> dicPost;

            if (typeof(PostT) == typeof(Dictionary <string, string>))
            {
                dicPost = postData as Dictionary <string, string>;
            }
            else
            {
                dicPost = HttpTools.ObjectToNameValueCollection <PostT>(postData);
            }

            List <UploadFile> postFiles = new List <UploadFile>();

            foreach (var fKey in files.Keys)
            {
                FileStream fs = File.OpenRead(files[fKey]);
                postFiles.Add(new UploadFile(fs, fKey, files[fKey], "application/octet-stream"));
            }

            //convert to nameValue
            var nvcPost = new NameValueCollection();

            foreach (KeyValuePair <string, string> pair in dicPost)
            {
                nvcPost[pair.Key] = pair.Value;
            }

            var response = HttpUploadHelper.Upload(req, postFiles.ToArray(), nvcPost);

            using (Stream s = response.GetResponseStream())
                using (StreamReader sr = new StreamReader(s))
                {
                    var responseJson = sr.ReadToEnd();
                    if (typeof(ReturnT) == typeof(string))
                    {
                        return((ReturnT)Convert.ChangeType(responseJson, typeof(ReturnT)));
                    }

                    return(fastJSON.JSON.Instance.ToObject <ReturnT>(responseJson));
                }
        }
コード例 #6
0
ファイル: WebConverter.cs プロジェクト: dahrkdaiz/simphony
        public static byte[] ConvertLibrary(string path, int regionCode)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://ddredit.konamionline.com/ddrse/library_manager/save.php");

            ResetHeaders(request);
            NameValueCollection formData = new NameValueCollection();

            formData.Add("area_list", regionCode.ToString());
            formData.Add("MAX_FILE_SIZE", "8158484");
            UploadFile[] files = new UploadFile[1];
            files[0] = new UploadFile(path, "upfile", "application/octet-stream");
            HttpWebResponse response = HttpUploadHelper.Upload(request, files, formData);
            Stream          s        = response.GetResponseStream();

            byte[] output = new byte[247040];
            s.Read(output, 0, output.Length);
            return(output);
        }
コード例 #7
0
        public void Store(FileInfo file, string relativePath)
        {
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(config.URL);

            if (!string.IsNullOrEmpty(config.Username))
            {
                req.Credentials = new NetworkCredential(config.Username, config.Password);
            }
            if (config.IgnoreSSLErrors)
            {
                ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, policyErrors) => true;
            }
            UploadFile          uf  = new UploadFile(file.FullName);
            NameValueCollection nvc = new NameValueCollection();

            nvc.Add("file", file.Name);
            nvc.Add("RelativePath", relativePath);
            HttpUploadHelper.Upload(req, new[] { uf }, nvc);
        }
コード例 #8
0
        private UploadResponse UploadTrack(Stream data, string token, string title, string filename)
        {
            System.Net.ServicePointManager.Expect100Continue = false;
            var request = WebRequest.Create("https://api.soundcloud.com/tracks") as HttpWebRequest;

            //some default headers
            request.Accept = "*/*";
            request.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3");
            request.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
            request.Headers.Add("Accept-Language", "en-US,en;q=0.8,ru;q=0.6");

            //file array
            var files = new UploadFile[] {
                new UploadFile(data, "track[asset_data]", filename, "application/octet-stream")
            };
            //other form data
            var form = new NameValueCollection();

            form.Add("track[title]", title);
            form.Add("track[sharing]", "private");
            form.Add("oauth_token", token);
            form.Add("format", "json");


            form.Add("Filename", filename);
            form.Add("Upload", "Submit Query");
            try
            {
                using (var response = HttpUploadHelper.Upload(request, files, form))
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        return(JsonConvert.DeserializeObject <UploadResponse>(reader.ReadToEnd()));
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #9
0
ファイル: ViewContent.cs プロジェクト: fizikci/Cinar
        private void editMetin_DoubleClick(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Title  = "Resim Seç";
            ofd.Filter = "Resim Dosyaları | *.jpg; *.jpeg; *.jpe; *.png; *.gif";

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                NameValueCollection postData = new NameValueCollection();
                postData.Add("Id", "0");
                postData.Add("ClassName", "Content");
                postData.Add("Title", "DEL " + DateTime.Now.Ticks);
                postData.Add("SpotTitle", "");
                postData.Add("Description", "");
                postData.Add("Tags", "");
                postData.Add("PublishDate", DateTime.Now.ToString("dd.MM.yyyy"));
                postData.Add("Metin", "");
                postData.Add("IsManset", "0");

                string res = "";

                var files = new UploadFile[1];
                files[0] = new UploadFile(ofd.FileName, "Picture", "image/jpg");

                var s = Settings.Load();

                res = HttpUploadHelper.Upload(s.SiteAddress[Index].Trim('/') + "/UploadContent.ashx", files, postData);

                Content c = JsonConvert.DeserializeObject <Content>(res);
                editMetin.SelectionLength = 0;
                editMetin.SelectedText    = string.Format("<img src=\"{0}\"/>", c.Picture);

                using (WebClient wc = new WebClient())
                {
                    wc.Encoding = Encoding.UTF8;
                    string res2 = wc.DownloadString(s.SiteAddress[Index].Trim('/') + string.Format("/DoCommand.ashx?method=deleteContents&Email={0}&Passwd={1}&ids={2}", s.Emails[Index], s.Passwords[Index], c.Id.ToString()));
                }
            }
        }
コード例 #10
0
        public static string Post(string url, string data, List <UploadFile> files, bool throwOnError)
        {
            try
            {
                var uri     = new Uri(url);
                var request = (HttpWebRequest)WebRequest.Create(
                    String.Format("{0}://{1}:{2}{3}", uri.Scheme, uri.Host, uri.Port, uri.AbsolutePath));

                AttachCertificate(request);

                using (var response = HttpUploadHelper.Upload(request, files.ToArray(), NameValueParser.GetCollection(data, "&")))
                    using (var result = response.GetResponseStream())
                        return(result.ReadString());
            }
            catch (Exception ex)
            {
                string message = String.Empty;

                if (ex is WebException)
                {
                    var wex      = (WebException)ex;
                    var response = (HttpWebResponse)wex.Response;

                    if (response != null)
                    {
                        using (var stream = response.GetResponseStream())
                            message = stream.ReadString();
                    }
                }

                Logger.Error("An error has occured while calling url. Url = {0}, Data = {1}, Exception = {2}, Message = {3}", LogSource.ServiceCall, url, data, ex, message);

                if (throwOnError)
                {
                    throw;
                }

                return(null);
            }
        }
コード例 #11
0
        // upload a file using the web form instead of the API (for old versions of WikiMedia which don't have the upload API)
        private void UploadFileThroughForm(LoginInfo loginInfo, string localFilePath, string remoteFilename)
        {
            UploadFile[] files = new UploadFile[] { new UploadFile(localFilePath, "wpUploadFile", "application/octet-stream") };

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(GetUrl("Special:Upload"));

            request.CookieContainer = loginInfo.Cookies;

            var parameters = new System.Collections.Specialized.NameValueCollection();

            parameters["wpSourceType"] = "file";
            parameters["wpDestFile"]   = remoteFilename;
            parameters["wpUpload"]     = "Upload file";

            var response = HttpUploadHelper.Upload(request, files, parameters);

            string strResponse = new StreamReader(response.GetResponseStream()).ReadToEnd();

            if (strResponse.Contains("A file with this name exists already"))
            {
                throw new MediaWikiException("Image already exists on the wiki");
            }
        }
コード例 #12
0
ファイル: HttpTools.cs プロジェクト: sami1971/Apigee.Net
        public static ReturnT PerformPost <PostT, ReturnT>(string url, PostT postData, NameValueCollection files)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

            NameValueCollection nvpPost;

            if (typeof(PostT) == typeof(NameValueCollection))
            {
                nvpPost = postData as NameValueCollection;
            }
            else
            {
                nvpPost = ObjectToNameValueCollection <PostT>(postData);
            }

            List <UploadFile> postFiles = new List <UploadFile>();

            foreach (var fKey in files.AllKeys)
            {
                FileStream fs = File.OpenRead(files[fKey]);
                postFiles.Add(new UploadFile(fs, fKey, files[fKey], "application/octet-stream"));
            }

            var response = HttpUploadHelper.Upload(req, postFiles.ToArray(), nvpPost);

            using (Stream s = response.GetResponseStream())
                using (StreamReader sr = new StreamReader(s))
                {
                    var responseJson = sr.ReadToEnd();
                    if (typeof(ReturnT) == typeof(string))
                    {
                        return((ReturnT)Convert.ChangeType(responseJson, typeof(ReturnT)));
                    }

                    return(fastJSON.JSON.Instance.ToObject <ReturnT>(responseJson));
                }
        }
コード例 #13
0
        // upload a file using the MediaWiki upload API
        private void UploadFile(string editToken, LoginInfo loginInfo, string localFilePath, string remoteFilename)
        {
            UploadFile[] files = new UploadFile[] { new UploadFile(localFilePath, "file", "application/octet-stream") };

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(GetApiUrl());

            request.CookieContainer = loginInfo.Cookies;

            var parameters = new System.Collections.Specialized.NameValueCollection();

            parameters["format"]   = "xml";
            parameters["action"]   = "upload";
            parameters["filename"] = Path.GetFileName(localFilePath);
            parameters["token"]    = editToken;

            var response = HttpUploadHelper.Upload(request, files, parameters);

            string strResponse = new StreamReader(response.GetResponseStream()).ReadToEnd();

            if (strResponse.StartsWith("unknown_action"))
            {
                // fallback : upload using web form
                UploadFileThroughForm(loginInfo, localFilePath, remoteFilename);
                return;
            }

            try
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(strResponse);
                var element = xmlDoc.GetElementsByTagName("api")[0].ChildNodes[0];
                if (element.Name == "error")
                {
                    string errorCode    = element.Attributes["code"].Value;
                    string errorMessage = element.Attributes["info"].Value;
                    throw new MediaWikiException("Error uploading to MediaWiki: " + errorCode + "\r\n" + errorMessage);
                }
                string result = element.Attributes["result"].Value;
                if (result == "Warning")
                {
                    foreach (XmlNode child in element.ChildNodes)
                    {
                        if (child.Name == "warnings")
                        {
                            if (child.Attributes["exists"] != null)
                            {
                                string existingImageName = child.Attributes["exists"].Value;
                                throw new MediaWikiException("Image already exists on the wiki: " + existingImageName);
                            }
                        }
                    }
                }

                if (result != "Success")
                {
                    throw new MediaWikiException("Error uploading to MediaWiki:\r\n" + result);
                }
            }
            catch (XmlException)
            {
                throw new MediaWikiException("Unexpected answer while uploading:\r\n" + strResponse);
            }
        }
コード例 #14
0
ファイル: FormMain.cs プロジェクト: fizikci/Cinar
        private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            var s = Settings.Load();

            foreach (var item in s.Feed)
            {
                if (string.IsNullOrWhiteSpace(item.Value))
                {
                    continue;
                }

                var siteIndex = item.Key;
                var site      = s.SiteAddress[siteIndex];
                var db        = Provider.GetDb(siteIndex).CreateNewInstance();

                foreach (string rssItem in item.Value.Replace("\r", "").SplitWithTrim('\n'))
                {
                    try
                    {
                        if (!rssItem.Contains("|"))
                        {
                            continue;
                        }
                        var rssUrl     = rssItem.SplitWithTrim("|")[0];
                        var categoryId = int.Parse(rssItem.SplitWithTrim("|")[1]);

                        XElement   rss     = XElement.Parse(rssUrl.DownloadPage());
                        XNamespace mediaNS = "http://search.yahoo.com/mrss/";

                        var haberler = rss.Element("channel").Elements("item").ToList();
                        if (haberler.Count == 0)
                        {
                            continue;
                        }

                        backgroundWorker.ReportProgress(0, rss.Element("channel").Element("title").Value + "|" + haberler.Count + "|" + site.Trim('/'));
                        for (int i = 0; i < haberler.Count; i++)
                        {
                            var media      = haberler[i].Element(mediaNS + "content");
                            var picture    = media == null ? "" : media.Attribute("url").Value;
                            var title      = haberler[i].Element("title").Value;
                            var sourceLink = haberler[i].Element("link").Value;

                            if (db.GetInt("select Id from Content where SourceLink={0}", sourceLink) > 0)
                            {
                                backgroundWorker.ReportProgress(((i + 1) * 100) / haberler.Count);
                                continue;
                            }

                            var metin = haberler[i].Element("description").Value;
                            if (metin.Contains(")- "))
                            {
                                metin = metin.Substring(metin.IndexOf(")- ") + 3);
                            }
                            var pubDate = DateTime.Parse(haberler[i].Element("pubDate").Value);

                            NameValueCollection postData = new NameValueCollection();
                            postData.Add("Id", "0");
                            postData.Add("ClassName", "Content");
                            postData.Add("Title", title);

                            if (title.Replace("İ", "I").ToLowerInvariant().StartsWith("cihan") || title.Replace("Ü", "U").ToLowerInvariant().StartsWith("duzeltme"))
                            {
                                backgroundWorker.ReportProgress(((i + 1) * 100) / haberler.Count);
                                continue;
                            }

                            postData.Add("SourceLink", sourceLink);
                            postData.Add("CategoryId", categoryId.ToString());
                            try
                            {
                                postData.Add("Description", metin.SplitWithTrim(".").First());
                            }
                            catch { }
                            postData.Add("Picture", picture);
                            postData.Add("PublishDate", pubDate.ToString("dd.MM.yyyy hh:mm"));
                            postData.Add("Metin", metin);

                            string res = HttpUploadHelper.Upload(site.Trim('/') + "/UploadContent.ashx", new UploadFile[0], postData);

                            backgroundWorker.ReportProgress(((i + 1) * 100) / haberler.Count);
                        }
                    }
                    catch (Exception ex) {
                    }
                }
            }
        }