Google 网站 API,IllegalArgumentException("Trying to set external cookie") 在 RedirectRequiredException 之后

use*_*481 5 cookies redirect google-api google-sites

我正在使用 gdata-media-1.0-1.47.1.jar 功能使用 com.google.gdata.client.media.MediaService.getMedia(IMediaContent mediaContent) 方法获取媒体数据。对于某些请求,我收到 RedirectRequiredException。当我重做 getMedia 请求时,使用从 RedirectRequiredException.getRedirectLocation() 获得的 url,我得到一个 IllegalArgumentException("Trying to set foreign cookie") 异常。

据我所知,原因是 cookie 的响应标头中的域与重定向位置的域不匹配。在 com.google.gdata.client.http.GoogleGDataRequest.matchDomain() 中,第一个参数是“.docs.google.com”,第二个参数是“docs.google.com”,这使得域匹配失败。

这是正确的行为吗?为什么会这样?我能做些什么吗?我在这里做错了什么吗?有没有可能避免这个问题?

SitesService sitesService = new SitesService("SomeAppName");
try {
    MediaContent mc = new MediaContent();
    mc.setUri(aURI);
    return sitesService.getMedia(mc);
} catch (RedirectRequiredException e) {
    MediaContent mc = new MediaContent();
    mc.setUri(e.getRedirectLocation());
    return sitesService.getMedia(mc);
}
Run Code Online (Sandbox Code Playgroud)