我正在尝试使用python-rtkit在RT中创建一个票证,它提供一个200 OK
并返回一个实际上没有在RT中创建的空票证的信息,另外我直接尝试使用这些请求模块,也有相同的结果。
我的代码尝试使用请求模块
post_data = """
id: ticket/new
Queue: myqueue
Subject: Test Ticket creation in RT with Python
Text: Wow ticket is created :-D .
"""
payload = {'content':post_data}
ticket_creation_reusult = requests.post("http://rt.domain.com/REST/1.0/ticket/new"+"user="+user+"&pass="+pas, payload)
我的代码试图使用请求python-rtkit,
content = {
'content': {
'Queue': 1,#'', 2
'Subject': 'New Ticket',
'Text': 'My useless\ntext on\nthree lines.',
}
}
try:
response = resource.post(path='ticket/new', payload=content)
logger.info(response.parsed)
except RTResourceError as e:
logger.error(e.response.status_int)
logger.error(e.response.status)
logger.error(e.response.parsed)
输出:
[DEBUG] POST ticket/new
[DEBUG] {'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8','Accept': 'text/plain'}
[DEBUG] 'content=Queue: 1\nText:My+useless%0A+text+on%0A+three+lines.\nSubject: New Ticket'
[INFO] POST
[INFO] http://nocrt.domain.com/REST/1.0/ticket/new
[DEBUG] HTTP_STATUS: 200 OK
[DEBUG] 'RT/4.2.9 200 Ok\n\n# Required: id, Queue\n\nid: ticket/new\nQueue:General\nRequestor: svc_nocrt\nSubject: \nCc:\nAdminCc:\nOwner: \nStatus:new\nPriority: 5\nInitialPriority:5\nFinalPriority: 1\nTimeEstimated: 0\nStarts: 2015-07-2014:20:07\nDue: 2015-07-27 14:20:07\nAttachment: \nText: \n\n'
[DEBUG] RESOURCE_STATUS: 200 Ok
[INFO] [[('id', 'ticket/new'), ('Queue', 'General'), ('Requestor','svc_nocrt'), ('Subject', ''), ('Cc', ''), ('AdminCc', ''),('Owner', ''), ('Status', 'new'), ('Priority', '5'), ('InitialPriority', '5'),('FinalPriority', '1'), ('TimeEstimated', '0'), ('Starts', '2015-07-2014:20:07'), ('Due', '2015-07-27 14:20:07'), ('Attachment', ''), ('Text', '')]]
[INFO] [[('id', 'ticket/new'), ('Queue', 'General'), ('Requestor','svc_nocrt'), ('Subject', ''), ('Cc', ''), ('AdminCc', ''),('Owner', ''), ('Status', 'new'), ('Priority', '5'), ('InitialPriority', '5'),('FinalPriority', '1'),('TimeEstimated', '0'), ('Starts', '2015-07-2014:20:07'),('Due', '2015-07-27 14:20:07'), ('Attachment', ''), ('Text', '')]]
看起来它创造了一张空票;但是在Web界面中没有显示任何内容,这些是python-rtkit的示例,另一个是我从here找到的但是得到了相同的结果
答案 0 :(得分:0)
与您的期望相反,这实际上是一条错误消息。
正如您所看到的那样here您正在浏览路径(第92-105行),当它找不到创建故障单的任何字段时,它实际上是默认的错误路径。如果你经过这下面的另一个分支(第128-184行),它实际上只会创建票证。
问题似乎是您的服务器实际上根本没有提取您的内容字段。您的rtkit客户端代码似乎直接来自rtkit docs,因此应该是正确的。因此,我必须猜测您的RTResource对象的构造有问题,或者在您的客户端和服务器之间过滤您的请求。
我怀疑它可能是使用多行文字。也许这些行未正确编码,因此您的服务器拒绝发布的数据?您可以尝试通过使其成为更简单的文本来证明这一点。
我也会查看您提交的请求版本,但是我已经没时间了。