当我将我的事件的xml文件发布到谷歌的服务器时,有时候我会收到下面的html,我很困惑为什么会这样,但有时候还可以。任何人都可以帮助我吗?
是否由连接错误引起?或者令牌无效?或者什么?
<html><head><meta http-equiv="content-type" content="text/html;charset=UTF-8">
<title>Error</title>
<style type="text/css">body {font-family: arial,sans-serif}</style></head>
<body text="#000000" bgcolor="#ffffff"><table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td rowspan="3" width="1%" nowrap><b><font face="times" size="10"><font color="#0039b6">G</font> <font color="#c41200">o</font> <font color="#f3c518">o</font> <font color="#0039b6">g</font> <font color="#30a72f">l</font> <font color="#c41200">e</font></font> </b></td>
<td> </td></tr>
<tr><td bgcolor="#3366cc"><font face="arial,sans-serif" color="#ffffff"><b>Error</b></font></td></tr>
<tr><td> </td></tr></table>
<blockquote>Cannot access the calendar you requested</blockquote>
<p></p>
<div style="background:#3366cc; width:1px; height:4px"></div></body></html>
答案 0 :(得分:1)
好吧,我不能说我真的喜欢这个问题的答案,但是我遇到了同样的问题并在经过一段时间的努力后找到了答案。
Google拥有自己的会话ID,可用于此类请求。第一次发出请求时,它会启动会话并为您提供重定向;它还会导致您在上面看到的错误。根据我可以收集的内容,如果您在设置会话ID后再次尝试请求,请求将会通过。
换句话说,您必须发送请求并检查Google的回复,看看您是否被重定向。如果是,您可以a couple of options获取包含Google会话ID(gsessionid)的网址;我选择从响应中解析Location标头,该响应显示应将数据发布到的URL。通过发布到新网址再次尝试您的请求(以及任何后续请求),它应该像魅力一样工作。只需要一点点就可以到达那里。
有关此问题的详情,请查看the Google documentation on redirects和this somewhat related StackOverflow question。