Exemplo n.º 1
0
        public string getRenderedContent(string issueKey, int issueType, int projectId, string markup)
        {
            var url = new StringBuilder(BaseUrl + "/rest/api/1.0/render");

            if (server.OldSkoolAuth)
            {
                url.Append(appendAuthentication(url.ToString()));
            }

            try {
                var req = (HttpWebRequest)WebRequest.Create(url.ToString());
                req.Proxy = server.NoProxy ? null : GlobalSettings.Proxy;

                req.Credentials      = CredentialUtils.getCredentialsForUserAndPassword(url.ToString(), UserName, Password);
                req.Method           = "POST";
                req.Timeout          = GlobalSettings.NetworkTimeout * 1000;
                req.ReadWriteTimeout = GlobalSettings.NetworkTimeout * 2000;
                req.ContentType      = "application/json";
                req.UserAgent        = Constants.USER_AGENT;

                loadLoginSessionCookies(req);
//                setSessionCookie(req);

                var requestStream = req.GetRequestStream();
                var encoding      = new ASCIIEncoding();

                object json = new {
                    rendererType     = "atlassian-wiki-renderer",
                    unrenderedMarkup = markup,
                    issueKey         = issueKey,
                    issueType        = issueType,
                    projectId        = projectId
                };

                var serialized = JsonConvert.SerializeObject(json);
                var buffer     = encoding.GetBytes(serialized);

                requestStream.Write(buffer, 0, buffer.Length);
                requestStream.Flush();
                requestStream.Close();

                var resp = (HttpWebResponse)req.GetResponse();

                storeLoginSessionCookies(req);

                var stream = resp.GetResponseStream();
                var text   = PlvsUtils.getTextDocument(stream);
                if (stream != null)
                {
                    stream.Close();
                }
                resp.Close();

                return(text);
            } catch (Exception e) {
                Debug.WriteLine(e.Message);
                throw;
            }
        }