Exemple #1
0
        public override LogFileHandlerResults Handle(string filename)
        {
            var request = WebRequest.CreateHttp(UploadUrl);
            var mp      = new MultipartRequest();

            request.Method      = "POST";
            request.ContentType = mp.ContentType;

            using (var stream = Helpers.TryOpenRead(filename))
            {
                mp.AddFile(stream, filename, FileField);

                var requestStream = request.GetRequestStream();
                mp.WriteRequest(requestStream);
            }

            var streamReader = new StreamReader(request.GetResponseStream());
            var html         = streamReader.ReadToEnd();
            var link         = LinkRegex.Search(html);

            return(new LogFileHandlerResults
            {
                Success = link != null,
                Output = link ?? html
            });
        }
        public int Upload(string filename)
        {
            Debug.Assert(IsLoggedIn, "IsLoggedIn");

            var request = WebRequest.CreateHttp(BaseUrl + "upload.json");
            var mp      = new MultipartRequest();

            request.CookieContainer = cookieContainer;
            request.Method          = "POST";
            request.ContentType     = mp.ContentType;
            request.Referer         = BaseUrl;
            request.Headers.Add("X-CSRFToken: " + csrfToken);

            using (var stream = Helpers.TryOpenRead(filename))
            {
                mp.AddFile(stream, filename, Path.GetFileName(filename));

                var requestStream = request.GetRequestStream();
                mp.WriteRequest(requestStream);
            }

            var streamReader = new StreamReader(request.GetResponseStream());
            var json         = streamReader.ReadToEnd();

            dynamic responseData = JObject.Parse(json);

            if (responseData.error != null)
            {
                throw new WebException("Unable to upload file: " + responseData.error);
            }

            int?uploadId = responseData.upload_id;

            return(uploadId.Value);
        }