我使用Django Rest Framework构建了一个API,用于从我的django模型中提供骰子。 Feed内容已经过验证,适用于我测试过的所有日历应用程序,除了iOS上的iCal 。如果复制/粘贴,iO上的iCal将接受内容,但不接受从网址导入。
我怀疑这个问题的原因是http-header: transfer-encoding:chunked
我正在试图找出传输被分块的原因,并查看修复此功能是否允许iOS读取Feed。
以下是一些简化的代码:
渲染
from rest_framework import renderers
class ICALRenderer(renderers.BaseRenderer):
media_type = 'text/html'
format = 'ical'
charset = 'utf-8'
def render(self, data, media_type=None, renderer_context=None):
blob = tools.ical_generator(data, 'My calendar name', 'My calendar description')
return blob
tools.ical_generator
def ical_generator(events=[], calname='', caldesc=''):
cal = vobject.iCalendar()
# build header
# iterate over events
# build footer
icalstream = cal.serialize()
return icalstream
note-1:执行 wget 时,只会显示ical_generator中的标题和页脚,并且转移将无法完成但无限期地“挂”。
note-2:API也用于其他目的而不是ical feed,在其他情况下,http-header 不分块。
答案 0 :(得分:0)
使用内容类型:文字/日历,iOS上的iCal会吃掉它。
text / html和text / plain是我测试过的所有其他验证工具所允许的,所以看起来iOS非常挑剔......