在消息中使用换行符的 Pushbullet pycurl
Pushbullet pycurl with linefeed in message
我正在尝试发送带有换行符/换行符的推送通知
但它不起作用。
当我添加 %0d 或 \n 它没有做任何事情。
在 bash 中,我只是将 -d 添加到我的 curl 命令中,它就可以工作了。
pycurl 有类似的解决方案吗?
提前致谢
有什么建议吗?
import pycurl
text2 = "line%0dline2"
postData = '{"type":"note", "title":"Title", "body":"%s"}' %text2.encode("utf-8")
c = pycurl.Curl()
c.setopt(pycurl.WRITEFUNCTION, lambda x: None)
c.setopt(pycurl.URL, 'https://api.pushbullet.com/v2/pushes')
c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json'])
c.setopt(pycurl.USERPWD, "api")
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.POSTFIELDS, postData)
c.perform()
我猜你正在使用类似的东西:
postData = '{"type":"note", "title":"Title", "body":"line\nline2"}'
这意味着当你将它发送到服务器时,服务器看到的是:
{"type":"note", "title":"Title", "body":"line
line2"}
您可以通过以下操作查看:
print(postData)
JSON指定换行符在字符串中出现时必须进行转义,所以真正要发送的是:
{"type":"note", "title":"Title", "body":"line\nline2"}
要在 python 中得到它,您应该使用“\\n”或原始字符串:
postData = '{"type":"note", "title":"Title", "body":"line\nline2"}'
我正在尝试发送带有换行符/换行符的推送通知 但它不起作用。 当我添加 %0d 或 \n 它没有做任何事情。
在 bash 中,我只是将 -d 添加到我的 curl 命令中,它就可以工作了。 pycurl 有类似的解决方案吗?
提前致谢
有什么建议吗?
import pycurl
text2 = "line%0dline2"
postData = '{"type":"note", "title":"Title", "body":"%s"}' %text2.encode("utf-8")
c = pycurl.Curl()
c.setopt(pycurl.WRITEFUNCTION, lambda x: None)
c.setopt(pycurl.URL, 'https://api.pushbullet.com/v2/pushes')
c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json'])
c.setopt(pycurl.USERPWD, "api")
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.POSTFIELDS, postData)
c.perform()
我猜你正在使用类似的东西:
postData = '{"type":"note", "title":"Title", "body":"line\nline2"}'
这意味着当你将它发送到服务器时,服务器看到的是:
{"type":"note", "title":"Title", "body":"line
line2"}
您可以通过以下操作查看:
print(postData)
JSON指定换行符在字符串中出现时必须进行转义,所以真正要发送的是:
{"type":"note", "title":"Title", "body":"line\nline2"}
要在 python 中得到它,您应该使用“\\n”或原始字符串:
postData = '{"type":"note", "title":"Title", "body":"line\nline2"}'