我正在尝试使用Perl(OTRS)编写的服务的Web API.数据以JSON格式发送.
JSON结构中的一个字符串值包含一个井号,显然在JSON中用作注释字符.这会导致解析错误:
解析JSON字符串时意外结束字符串
我找不到如何转义字符以便成功解析字符串.明显的斜线逃逸导致:
字符串中的非法反斜杠转义序列
任何想法如何逃脱它?
更新: 我尝试使用的URL看起来像这样(简化但仍导致错误):
http://otrs.server.url/otrs/json.pl?User=username&Password=password&Object=TicketObject&Method=ArticleSend&Data={"Subject":"[Ticket#100000] Test Ticket from OTRS"}
Run Code Online (Sandbox Code Playgroud)
用途Uri::escape:
use URI::Escape;
my $safe = uri_escape($url);
Run Code Online (Sandbox Code Playgroud)
有关可能不安全的字符列表,请参阅rfc1738.
哈希符号在URL中#具有特殊含义,而不是JSON.在删除服务器甚至看到它之前,您的URL可能在哈希处被截断:
http://otrs.server.url/otrs/json.pl?User=username&Password=password&Object=TicketObject&Method=ArticleSend&Data={"Subject":"[Ticket
Run Code Online (Sandbox Code Playgroud)
这意味着远程服务器会受到损坏的JSON Data.解决方案是对参数进行URL编码,然后将它们粘贴在一起形成您的URL; eugene y告诉你如何做到这一点.
| 归档时间: |
|
| 查看次数: |
4384 次 |
| 最近记录: |