我正在使用 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)