/// <summary> /// Uploads a file to zendesk and returns the corresponding token id. /// To upload another file to an existing token just pass in the existing token. /// </summary> /// <param name="file"></param> /// <param name="token"></param> /// <returns></returns> Upload UploadAttachment(ZenFile file, string token = "") { var requestUrl = ZenDeskUrl; if (!requestUrl.EndsWith("/")) requestUrl += "/"; requestUrl += string.Format("uploads.json?filename={0}", file.FileName); if (!string.IsNullOrEmpty(token)) requestUrl += string.Format("&token={0}", token); WebRequest req = WebRequest.Create(requestUrl); req.ContentType = file.ContentType; req.Method = "POST"; req.ContentLength = file.FileData.Length; var credentials = new System.Net.CredentialCache { { new System.Uri(ZenDeskUrl), "Basic", new System.Net.NetworkCredential(User, Password) } }; req.Credentials = credentials; req.PreAuthenticate = true; //req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequired; var dataStream = req.GetRequestStream(); dataStream.Write(file.FileData, 0, file.FileData.Length); dataStream.Close(); WebResponse response = req.GetResponse(); dataStream = response.GetResponseStream(); var reader = new StreamReader(dataStream); string responseFromServer = reader.ReadToEnd(); return responseFromServer.ConvertToObject<UploadResult>().Upload; }
public Upload UploadAttachment(ZenFile file) { return UploadAttachment(file, ""); }