Search code examples
c#httpwebrequesthttp-postjirahttpwebresponse

How to call add account method for tempoplugin with post in C#


At this url there is a description how to call tempoplugin with usage of post. In order to achieve it, I created following string:

enter image description here

also created following code for posting data:

    public static string HTTP_POST(string Url, string Data, string userName = "", string password = "")
    {

        string Out = String.Empty;
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
        try
        {
            if (userName != null && password != null)
            {
                req.ContentType = "application/json";
                req.Method = "POST";
                req.ProtocolVersion = HttpVersion.Version11;

                string base64Credentials = GetEncodedCredentials(userName, password);
                req.Headers.Add("Authorization", "Basic " + base64Credentials);
            }

            req.Timeout = 100000;
            byte[] sentData = Encoding.UTF8.GetBytes(Data);
            req.ContentLength = sentData.Length;
            using (System.IO.Stream sendStream = req.GetRequestStream())
            {
                sendStream.Write(sentData, 0, sentData.Length);
                sendStream.Close();
            }
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();
            System.IO.Stream ReceiveStream = res.GetResponseStream();
            using (System.IO.StreamReader sr = new System.IO.StreamReader(ReceiveStream, Encoding.UTF8))
            {
                Char[] read = new Char[256];
                int count = sr.Read(read, 0, 256);

                while (count > 0)
                {
                    String str = new String(read, 0, count);
                    Out += str;
                    count = sr.Read(read, 0, 256);
                }
            }
        }
        catch (ArgumentException ex)
        {
            Out = string.Format("HTTP_ERROR :: The second HttpWebRequest object has raised an Argument Exception as 'Connection' Property is set to 'Close' :: {0}", ex.Message);
        }
        catch (WebException ex)
        {
            Out = string.Format("HTTP_ERROR :: WebException raised! :: {0}", ex.Message);
        }
        catch (Exception ex)
        {
            Out = string.Format("HTTP_ERROR :: Exception raised! :: {0}", ex.Message);
        }

        return Out;
    }

But still I receive response "The remote server returned an error: (404) Not Found". Does anybody knows what I missed?


Solution

  • I fount the solution. The problem lied in permissions on Jira. After double checking with admins my code worked perfectly.