Im going to update worklog of an issue;
HttpWebResponse return this error "The remote server returned an error: (401) Unauthorized.".
Can anyone help me please?
Here is my code:
protected string RunQuery(JiraResource resource, string issue_id, string data = null, string method = "PUT")
{
//resource = issue
// data :{"worklog":{"add":{"comment":"Sample test comment by IJ","started":"2014-01-28T19:25:33.78125+05:30","timeSpent":210}}}
string url = string.Format("{0}{1}/", m_BaseUrl, resource.ToString());
if (issue_id != null)
{
url = string.Format("{0}{1}", url, issue_id);
}
// url : https://company.atlassian.net/rest/api/2/issue/JIRA-16
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.ContentType = "application/json";
request.Method = method;
request.ContentLength = data.Length;
using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write(data);
}
string base64Credentials = GetEncodedCredentials();
request.Headers.Add("Authorization", "Basic " + base64Credentials);
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
string result = string.Empty;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
result = reader.ReadToEnd();
}
return result;
}
where;
private string GetEncodedCredentials()
{
string mergedCredentials = string.Format("{0}:{1}", m_Username, m_Password);
byte[] byteCredentials = UTF8Encoding.UTF8.GetBytes(mergedCredentials);
return Convert.ToBase64String(byteCredentials);
}