登录jira soap api

我尝试在c#上使用jira soap api:

  1. 在VS2010中创建新项目
  2. 添加Web服务引用(JiraTest): http://jira.atlassian.com/rpc/soap/jirasoapservice-v2?wsdl ://jira.atlassian.com/rpc/soap/jirasoapservice-v2?wsdl
  3. 写下一个代码:

     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

你可以试试这个

  JiraSoapServiceService jiraSoapService = new JiraSoapServiceService(); public string Login(string user, string pwd) { string result = string.Empty; result = jiraSoapService.login(user, pwd); return result; } public void Logout(string token) { jiraSoapService.logout(token); } 

我遇到了同样的问题并找到了答案。 您需要将其添加为Web引用。 它会引入参数,但是当它们出现在WSDL中时,登录(字符串用户名,字符串密码)变为登录(字符串in0,字符串in1),但至少它是可用的。

所以步骤:

  • 右键单击Project并单击“添加服务引用…”(就像之前一样)
  • 单击对话框左下角的“高级…”
  • 单击对话框左下角的“添加Web引用…”
  • 在Url Box中输入WSDL Url,例如“https://jira.atlassian.com/rpc/soap/jirasoapservice-v2?WSDL”
  • 单击绿色箭头
  • 在Web引用名称中为您的引用命名:框
  • 点击“添加参考”

我发现自己处于相同的情况但是无法使用“Web服务服务”解决方案,因为我需要控制绑定配置(sendTimeout,maxReceivedMessageSize等)。

您可以通过svcutil.exe手动生成JIRA WCF代理来解决此问题。 例如:

  1. Run svcutil.exe http://myhostname/rpc/soap/jirasoapservice-v2?wsdl /n:*,mynamespace 2. Copy output source file to your project 3. Copy configuration (output.config) to your app.config.