Tag: jira

使用POST请求将JSON发送到Jira API时的System.Net.WebException

好吧,伙计们,我已经在这个问题上挣扎了一天左右,没有明确的解决方案。 我将从例外开始: The remote server returned an error: NotFound. at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state) at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 我正在尝试连接到JIRA rest API以登录用户。 我们的JIRA系统目前运行4.4.1,我试图访问的API信息在此处记录: https : //developer.atlassian.com/static/rest/jira/4.4.1.html 。 (请参阅“/ auth / 1 / session”API的POST请求) API调用POST请求,其中包含用户凭据的JSON正文。 我已尝试手动构建JSON,以及使用JSON库,结果是相同的。 我发送的json是: { “username”: “test”, “password”: “test” } 我试图将内容类型和编码更改为我能想象的任何内容。 这包括“text / json”,“application / json”,将Encoding.UTF8添加到流编写器等。所有结果都是相同的。 也许这整个考验中最令人沮丧的部分是,我能够立刻用Java for Android编写这个,所以我不认为这是一个API误解,就像Windows Phone 8和/或C#一样误解。 最后要指出的几点: 如果我更改代码以使用GET请求,请指向“http://www.google.com”,并删除请求回调(直接跳到响应),一切正常,我得到了我期望的结果。 我对HttpWebRequest的“BeginX”“EndX”方法感到困惑。 我理解异步任务,但不完全是C#如何管理它。 […]

使用c#中的REST API将附件发布到Jira

我有个问题。 当我想使用REST API将一些附件发布到JIRA时,我有一个带有404代码的Webexception(未找到)。 我的方法采用CookieContainer来validation用户。 这是我的代码: HttpWebResponse response; string path = “C:\\Users\\xxxx\\Documents\\nowy.txt”; var boundary = string.Format(“———-{0:N}”, Guid.NewGuid()); request.CookieContainer = new CookieContainer(); foreach (Cookie c in responseCookies) request.CookieContainer.Add(c); request.ContentType = String.Format(“multipart/form-data; boundary={0}”, boundary); request.Method = “POST”; request.Headers.Add(“X-Atlassian-Token: nocheck file=@my_file.txt”); request.Headers.Add(“charset”, “UTF-8”); request.KeepAlive = false; var fileContent = File.ReadAllBytes(path); request.ProtocolVersion = HttpVersion.Version10; using(var streamWriter = new StreamWriter(request.GetRequestStream())) { […]

如何在JIRA中使用REST api创建问题?

我正在使用我的json数据向JIRA发送POST请求以创建项目,但我无法创建一个项目到JIRA,我试图从Fiddler看到错误,我得到了跟随错误。 我正在使用C#并为它创建了控制台应用程序。 我发布的我的JSON数据如下。 { “fields”: { “project”: { “key”: “JTL” }, “issuetype”: { “name”: “BUG” } } } 错误消息如下: {“errorMessages”:[],“errors”:{“issuetype”:“问题类型是必需的”}} 我从以下代码发布json数据,请提出我错在哪里和哪里? string data=@”{“fields”:{“project”:{“key”:”JTL”},”issuetype”:{“name”:”BUG”}}}”; //object of HttpClient. HttpClient client = new HttpClient(); //Putting URI in client base address. client.BaseAddress = new Uri(uri); //Putting the credentials as bytes. byte[] cred = UTF8Encoding.UTF8.GetBytes(“jiraUserName” + “:” + “JiraPassword”); //Putting […]

从字符串加载.Net中的Jira公共证书(如何在.Net中将ASN.1编码的SubjectPublicKeyInfo转换为X509证书)

我正在构建一个oauth 1.0a服务,它将由Jira中的小工具使用,它是一个用C#编写的.Net 3.5应用程序。 Jira使用RSA-SHA1签名方法向此服务发出请求,这意味着validation我需要创建X509Certificate实例的请求的签名形成其公共证书。 在Jira应用程序中,您可以通过转到消费者信息屏幕(也包含Jira的消费者密钥等)来获取公共证书,并以此格式显示公钥: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCObJRTGSZbAo jRkvKmm0cwFXnKcPMfR4t/sghvLe/+QVs6TJOz5cUh5UokSqyz VeMsL0jomP18ZcR3SPcIFT7xtOGQjLwLk7ghfYSsxjTGs9VxsC /PQk5OQRP3v43IxFNF3M2SYhFWJZTOnqrab5AsMh2Kxdv+D69D CINXCu5ltQIDAQAB 查看生成此密钥的Jira代码,我可以看到它(假设)PEM编码时没有BEGIN / END证书页眉/页脚。 RSAKeys.toPemEncoding(consumer.getPublicKey()) RSAKeys是一个开源类,可在此处找到: https://studio.atlassian.com/source/browse/OAUTH/trunk/api/src/main/java/com/atlassian/oauth/util/RSAKeys.java?r=HEAD 我希望将此公共证书(密钥)加载到.Net中的X509Certificate实例中,但到目前为止我的尝试都失败了。 这是我的代码: static readonly Regex stripRegex = new Regex(“—–[AZ ]*—–“); public string ConvertFromOpenSsl(string key) { return stripRegex.Replace(key, “”).Replace(“\r”, “”).Replace(“\n”, “”); } public X509Certificate2 GetConsumerCertificate(IConsumer consumer) { string cert = @”MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCObJRTGSZbAo jRkvKmm0cwFXnKcPMfR4t/sghvLe/+QVs6TJOz5cUh5UokSqyz VeMsL0jomP18ZcR3SPcIFT7xtOGQjLwLk7ghfYSsxjTGs9VxsC /PQk5OQRP3v43IxFNF3M2SYhFWJZTOnqrab5AsMh2Kxdv+D69D CINXCu5ltQIDAQAB”; string converted = ConvertFromOpenSsl(cert); var […]

通过Rest c#httpClient创建jira问题

我在atlassian上看了一个答案https://answers.atlassian.com/questions/79902/using-httpclient-c-to-create-a-jira-issue-via-rest-generates-bad-request-response用户通过以下代码创建了JIRA问题。 我调整了它,但通过使用ObjectContent的自构建类问题得到错误 Http.HttpContent content = new Http.ObjectContent(data, jsonFormatter); 编译器不会接受它。 有人知道为什么吗? public string CreateJiraIssue() { string data= @”{ “”fields””: { “”project””: { “”key””: “”HELP”” }, “”summary””: “”Test Ticket””, “”description””: “”Creating of an issue using project keys and issue type names using the REST API””, “”issuetype””: { “”name””: “”Ticket”” }, “”assignee””: { “”name””: “”user”” } } }”; […]

可以使用reflection来实例化对象基类属性吗?

像这样: public class remoteStatusCounts : RemoteStatus { public int statusCount; public remoteStatusCounts(RemoteStatus r) { Type t = r.GetType(); foreach (PropertyInfo p in t.GetProperties()) { this.property(p) = p.GetValue(); //example pseudocode } } } 这个例子有点简单(它来自Jira API – RemoteStatus有4个属性),但想象一下基类有30个属性。 我不想手动设置所有这些值,特别是如果我的inheritance类只有一些额外的属性。 反思似乎暗示了一个答案。 我在构造函数(publix X():y)中看到了使用inheritance ,我可以调用基类构造函数(我认为?如果我错了,请纠正我),但我的基类没有构造函数 – 它源于jira wsdl public remoteStatusCounts(RemoteStatus r) : base(r) { //do stuff } 编辑我可以想象2个有效的解决方案:上面概述的那个,以及某种像this.baseClass这样的关键字,它是type(baseclass)并且这样操作,作为一种指向this的指针。 所以, […]

如何使用REST API将附件发布到JIRA?

如何在C#中使用JIRA REST API和HttpWebRequest将附件发布到JIRA? 从/ rest / api / 2 / issue / {issueIdOrKey} / attachments下的文档 : POST 为问题添加一个或多个附件。 此资源需要一个多部分post。 媒体类型的multipart / form-data在RFC 1867中定义。大多数客户端库都有类使得处理多部分post变得简单。 例如,在Java中,Apache HTTP Components库提供了一个MultiPartEntity,使得提交多部分POST变得简单。 为了防止XSRF攻击,因为此方法接受multipart / form-data,所以它具有XSRF保护。 这意味着您必须提交X-Atlassian-Token标头:nocheck请求,否则将被阻止。 包含附件的multipart / form-data参数的名称必须是“file” 上传名为“myfile.txt”的文件以发布REST-123的简单示例: curl -D- -u admin:admin -X POST -H“X-Atlassian-Token:nocheck”-F“file=@myfile.txt” http://myhost.test/rest/api/2/issue/TEST -123 /附件 我有 foreach (JIRAAttachments attachm in attachments.attachments) { request = HttpWebRequest.Create( logInformation.GetUri() […]

登录jira soap api

我尝试在c#上使用jira soap api: 在VS2010中创建新项目 添加Web服务引用(JiraTest): http://jira.atlassian.com/rpc/soap/jirasoapservice-v2?wsdl ://jira.atlassian.com/rpc/soap/jirasoapservice-v2?wsdl 写下一个代码: static void Main(string[] args) { var jiraLogin = “soaptester”; var jiraPassword = “soaptester”; var jiraClient = new JiraTest.JiraSoapServiceClient(); var projects = jiraClient.getProjects(); } 但是这段代码引发了我还没有认识到的错误。 我尝试查找login方法,但它有下一个签名: public void login(); 哪里没有登录名和密码参数。 当我使用这个登录方法代码抛出exeption时,登录名或密码无效。 我不知道我必须在哪里设置我的凭据。 如何在调用所需方法之前使用jira soap api登录? 补充:请参阅https://developer.atlassian.com/display/JIRADEV/Creating+a+JIRA+SOAP+Client

您可以在.NET中的运行时更改动态Web引用的位置/端点吗?

以一种相当标准的方式,我在Jira中创建了一个Web服务的Web引用,用于我正在构建的扩展(Jira是一个不熟悉它的问题跟踪器)。 Visual Studio自动生成.Settings文件和包含Web服务URL的app.config 。 由于我正在为我们正在构建的ALM产品开发扩展/插件,扩展的消费者将最终决定此Web服务指向的位置,因为它将与消费者的Jira实例集成。 假设将从数据库中存储和提取Web服务URL。 如何让自动生成的服务使用数据库中的URL而不是生成的app.config ? 注意:我们使用的是框架的v2.0,因此WCF不是一个选项。

使用C#进行JIRA Rest API登录

我写了下面的C#代码来登录JIRA Rest API: var url = new Uri(“http://localhost:8090/rest/auth/latest/session?os_username=tempusername&os_password=temppwd”); var request = WebRequest.Create(url) as HttpWebRequest; if (null == request) { return “”; } request.Method = “POST”; request.ContentType = “application/json”; request.ContentLength = 200; request.KeepAlive = false; using (var response = request.GetResponse() as HttpWebResponse) { } 当我执行它时,应用程序继续运行而不返回任何响应。 请建议这是否是使用REST API调用JIRA登录的正确方法