/// <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); }
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"); }
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; }
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 }); }
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)); } }
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); }
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); }
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; } }
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())); } } }
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); } }
// 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"); } }
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)); } }
// 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); } }
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) { } } } }