0

我是新来的。这和这个问题一样,但我没有得到答案,所以我再次发布:如何使用 python-rtkit 在 rt 中创建票证

我尝试了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. 在文件中手动保存 cookie 值coookie.txt

    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'
    

票证内容已在 中很好地注册ticketContent.txt,这表明使用 cookie 进行身份验证正在工作。

但我仍然无法CookieAuthentication在我的 python 脚本中使用 rtkit。

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

4

1 回答 1

1

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

  1. 安装请求库。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)
    

输出是:

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.

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

于 2014-10-18T18:27:59.457 回答