无法通过通用接口创建 otrs 票证
Cannot create otrs ticket via generic interface
我正在尝试在 otrs 系统中创建票证,但它仍然 return 301:永久移动。我正在使用 OTRS 5 免费版。
我的请求uri:https://some.domain.com/nph-genericinterface.pl/Webservice/GenericTicketREST/Ticket
以及邮件正文:
{
"UserLogin": "mbar",
"Password": "*****",
"Ticket" :
{
"Title": "raz dwa trzy",
"Queue": "Raw",
"Lock": "unlock",
"Type": "Unclassified",
"State": "new",
"Priority": "3 normal",
"Owner": "mbar",
"CustomerUser": "mbar"
},
"Article":
{
"Subject" : "jakiś temat",
"Body" : "test test tes test",
"ContentType": "text/plain; charset=utf8"
}
}
这是我的服务配置:
---
Debugger:
DebugThreshold: debug
TestMode: '0'
Description: Ticket Connector REST Sample
FrameworkVersion: 4.x git
Provider:
Operation:
SessionCreate:
Description: Creates a Session
MappingInbound: {}
MappingOutbound: {}
Type: Session::SessionCreate
TicketCreate:
Description: Creates a Ticket
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketCreate
TicketGet:
Description: Retrieves Ticket data
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketGet
TicketSearch:
Description: Search for Tickets
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketSearch
TicketUpdate:
Description: Updates a Ticket
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketUpdate
Transport:
Config:
KeepAlive: ''
MaxLength: '100000000'
RouteOperationMapping:
SessionCreate:
RequestMethod:
- POST
Route: /Session
TicketCreate:
RequestMethod:
- POST
Route: /Ticket
TicketGet:
RequestMethod:
- GET
Route: /Ticket/:TicketID
TicketSearch:
RequestMethod:
- GET
Route: /Ticket
TicketUpdate:
RequestMethod:
- PATCH
Route: /Ticket/:TicketID
Type: HTTP::REST
RemoteSystem: ''
Requester:
Transport:
Type: ''
你能帮我解决这个问题吗?
如果您收到 HTTP 301 错误,这很可能意味着您没有正确配置 Web 服务器,并且您的服务器重定向到某个位置。 OTRS 通常使用 200 OK
或 500 Internal server error
.
进行响应
检查您的 Apache 日志,看看那里发生了什么。
我可以像这样用 curl
创建票证:
curl "http://example.com/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket?UserLogin=login&Password=sekret" \
-H "Content-Type: application/json" \
-d @create_ticket.json
其中 create_ticket.json
会是这样的:
{
"Ticket" : {
"Queue" : "Raw",
"Priority" : "3 normal",
"CustomerUser" : "max",
"Title" : "REST Create Test",
"State" : "open",
"Type" : "Unclassified"
},
"Article" : {
"ContentType" : "text/plain; charset=utf8",
"Subject" : "Rest Create Test",
"Body" : "This is only a test"
}
}
我的 url 中缺少 otrs,文档中没有提到,所以我从 https://some.domain.com/nph-genericinterface.pl/Webservice/GenericTicketREST/Ticket
到
https://some.domain.com/otrs/nph-genericinterface.pl/Webservice/GenericTicketREST/Ticket
并且有效。
我正在尝试在 otrs 系统中创建票证,但它仍然 return 301:永久移动。我正在使用 OTRS 5 免费版。
我的请求uri:https://some.domain.com/nph-genericinterface.pl/Webservice/GenericTicketREST/Ticket
以及邮件正文:
{
"UserLogin": "mbar",
"Password": "*****",
"Ticket" :
{
"Title": "raz dwa trzy",
"Queue": "Raw",
"Lock": "unlock",
"Type": "Unclassified",
"State": "new",
"Priority": "3 normal",
"Owner": "mbar",
"CustomerUser": "mbar"
},
"Article":
{
"Subject" : "jakiś temat",
"Body" : "test test tes test",
"ContentType": "text/plain; charset=utf8"
}
}
这是我的服务配置:
---
Debugger:
DebugThreshold: debug
TestMode: '0'
Description: Ticket Connector REST Sample
FrameworkVersion: 4.x git
Provider:
Operation:
SessionCreate:
Description: Creates a Session
MappingInbound: {}
MappingOutbound: {}
Type: Session::SessionCreate
TicketCreate:
Description: Creates a Ticket
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketCreate
TicketGet:
Description: Retrieves Ticket data
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketGet
TicketSearch:
Description: Search for Tickets
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketSearch
TicketUpdate:
Description: Updates a Ticket
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketUpdate
Transport:
Config:
KeepAlive: ''
MaxLength: '100000000'
RouteOperationMapping:
SessionCreate:
RequestMethod:
- POST
Route: /Session
TicketCreate:
RequestMethod:
- POST
Route: /Ticket
TicketGet:
RequestMethod:
- GET
Route: /Ticket/:TicketID
TicketSearch:
RequestMethod:
- GET
Route: /Ticket
TicketUpdate:
RequestMethod:
- PATCH
Route: /Ticket/:TicketID
Type: HTTP::REST
RemoteSystem: ''
Requester:
Transport:
Type: ''
你能帮我解决这个问题吗?
如果您收到 HTTP 301 错误,这很可能意味着您没有正确配置 Web 服务器,并且您的服务器重定向到某个位置。 OTRS 通常使用 200 OK
或 500 Internal server error
.
检查您的 Apache 日志,看看那里发生了什么。
我可以像这样用 curl
创建票证:
curl "http://example.com/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket?UserLogin=login&Password=sekret" \
-H "Content-Type: application/json" \
-d @create_ticket.json
其中 create_ticket.json
会是这样的:
{
"Ticket" : {
"Queue" : "Raw",
"Priority" : "3 normal",
"CustomerUser" : "max",
"Title" : "REST Create Test",
"State" : "open",
"Type" : "Unclassified"
},
"Article" : {
"ContentType" : "text/plain; charset=utf8",
"Subject" : "Rest Create Test",
"Body" : "This is only a test"
}
}
我的 url 中缺少 otrs,文档中没有提到,所以我从 https://some.domain.com/nph-genericinterface.pl/Webservice/GenericTicketREST/Ticket 到 https://some.domain.com/otrs/nph-genericinterface.pl/Webservice/GenericTicketREST/Ticket 并且有效。