Войти в jira soap api

Я пытаюсь использовать jira soap api на С #:

  1. создать новый проект в VS2010
  2. добавить ссылку на веб-службу (JiraTest): http://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();

Где нет параметров логина и пароля. Когда я использую этот код метода входа в систему, выдает исключение, что логин или пароль недействительны. И я не знаю, где я должен указать свои полномочия.

Как я могу войти в систему с помощью jira soap api перед вызовом необходимого метода?

Добавлено: см. https://developer.atlassian.com/display/JIRADEV/Creating+a+JIRA+SOAP+Client


person tbicr    schedule 09.01.2012    source источник
comment
Когда вы выполните поиск на странице Atlassian для входа в систему, вы найдете использование. Что-то вроде jiraClient.login(jiraLogin, jiraPassword) должно работать.   -  person mliebelt    schedule 09.01.2012
comment
Да, но, к сожалению, существует только один метод входа в систему, и этот метод не имеет параметров.   -  person tbicr    schedule 09.01.2012
comment
Не могли бы вы добавить информацию об API (URL !!) в свой вопрос? Я не знаю, какой API вы используете ...   -  person mliebelt    schedule 09.01.2012
comment
Если вы посмотрите сами в WSDL, вы увидите, что <wsdl:message name="loginRequest"> имеет два строковых параметра. Похоже, ваш клиентский класс был сгенерирован неправильно.   -  person Rup    schedule 09.01.2012
comment
@mliebert Это API-интерфейс JIRA SOAP. URL-адрес WSDL находится на его шаге 2, а URL-адрес API - внизу: https://jira.atlassian.com/rpc/soap/jirasoapservice-v2   -  person Rup    schedule 09.01.2012
comment
На самом деле моя Visual Studio генерирует неправильный wsdl. Спасибо, Руп.   -  person tbicr    schedule 09.01.2012


Ответы (3)


Вы можете попробовать это

    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);
    }
person Mennan    schedule 09.01.2012
comment
Это правильно, но я был сбит с толку, потому что моя Visual Studio генерирует неправильный класс с помощью wsdl (используйте следующую команду: wsdl / language: CS jira.atlassian.com/rpc/soap/jirasoapservice-v2?wsdl) - person tbicr; 09.01.2012
comment
Я думаю, вам нужно включить плагин RPC для создания мыла. confluence.atlassian.com/display/JIRA042/ - person Mennan; 09.01.2012

У меня была такая же проблема, и я нашел ответ. Вам нужно добавить его как веб-ссылку. Он будет вводить параметры, но так, как они появляются в WSDL, поэтому логин (строковое имя пользователя, строковый пароль) становится логином (строка in0, строка in1), но, по крайней мере, его можно использовать.

Итак, шаги:

  • Щелкните правой кнопкой мыши "Проект" и выберите "Добавить ссылки на службы ..." (как и раньше).
  • Нажмите "Дополнительно ..." в нижнем левом углу диалогового окна.
  • Нажмите "Добавить веб-ссылку ..." в нижнем левом углу диалогового окна.
  • Введите URL-адрес WSDL в поле URL-адреса, например «https://jira.atlassian.com/rpc/soap/jirasoapservice-v2?WSDL».
  • Щелкните зеленую стрелку перехода
  • Укажите ссылку в поле Имя веб-ссылки:
  • Нажмите "Добавить ссылку".
person Monso    schedule 15.11.2012

Я оказался в той же ситуации, но не смог использовать решение «Web Service Service», так как мне нужно было контролировать конфигурацию привязки (sendTimeout, maxReceivedMessageSize и т. Д.).

Вы можете решить эту проблему, вручную сгенерировав прокси-сервер JIRA WCF через svcutil.exe. Например:

 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.
person anve    schedule 13.03.2014