使用具有RESOURCE_STATUS的python-rtkit在RT中创建票证:需要401凭据

时间:2014-10-03 20:10:25

标签: python rest rt

我是新来的。它与此问题相同,但我没有得到答案,所以我再次发布:how to create a ticket in rt using python-rtkit

我尝试了CookieAuthenticatorBasicAuthenticator来创建或读取票证,但我仍然遇到同样的错误:

`RT/3.8.13 401 Credentials required` 

当我直接在浏览器中加载网址:http://ticket.corp.kk.net/REST/1.0/ticket/214560?user=user&pass=pass时,我会在浏览器中获取故障单内容。

我甚至尝试使用wget命令使用cookie获取如下所示的一个票证内容,并且效果很好:

  1. 手动保存coookie.txt文件中的cookie值:

    RT_SID_kk.net.80=5a1c1eb207c4e2ef5af726e98d751a08
    
  2. 运行此命令:

    wget -O ticketContent.txt --keep-session-cookies --save-cookies cookies.txt 'http://ticket.corp.kk.net/REST/1.0/ticket/220680/show?format=l&user=user&pass=pass'
    
  3. 故障单内容已在ticketContent.txt中正确注册,显示使用Cookie进行身份验证正在运行。

    但是我仍然无法在我的python脚本中查看rtkit的CookieAuthentication

    我已经在这个问题上苦苦挣扎了2天,如果有人可以帮助我,我会非常感激。谢谢。

1 个答案:

答案 0 :(得分:1)

我还没有找到解决此问题的方案,但我成功使用python Requests库在RT中创建了一张票。

  1. 安装请求lib。 http://docs.python-requests.org/en/latest/user/install/#install
  2. 在RT中创建新票证

    #!/usr/bin/python -u
    import requests,logging
    
    logging.basicConfig(level=logging.DEBUG)
    post_data = """
    id: ticket/new
    Queue: myqueue
    Subject: Test Ticket creation in RT with Python
    Text: Wow ticket is created :-D . 
    """
    payload = {'user': 'user', 'pass': 'password','content':post_data}
    ticket_creation_reusult = requests.post("http://ticket.corp.kk.net/rt3/REST/1.0/ticket/new", payload)
    
    logging.debug(ticket_creation_reusult.text)
    
  3. 输出结果为:

    INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1):  ticket.corp.kk.net
    DEBUG:requests.packages.urllib3.connectionpool:"POST /rt3/REST/1.0/ticket/new     HTTP/1.1" 200 None
    DEBUG:root:RT/3.8.13 200 Ok
    # Ticket 221173 created.
    

    希望这可以帮到你,如果你和我有同样的问题。 :-)