【发布时间】:2023-12-21 05:25:02
【问题描述】:
我正在使用 Google API 来获取有关经过身份验证的用户的信息。我可以获得基本的个人资料信息,例如ID和全名。从个人资料信息中,我可以得到图片的 URL:
var plusMeUri = new Uri($"https://www.googleapis.com/plus/v1/people/me?key=<APP-ID>&access_token=<ACCESS-TOKEN>");
string userResponse = await HttpClient.GetStringAsync(plusMeUri);
JObject userObject = JObject.Parse(userResponse);
...
var imageObject = userObject.GetValue("image") as JObject;
var pictureUrl = imageObject.GetValue("url").Value<string>();
var pictureUri = new Uri(pictureUrl);
string uri = $"{pictureUri.Scheme}://{pictureUri.Host}{pictureUri.AbsolutePath}";
var pictureRequest = new HttpRequestMessage(HttpMethod.Get, uri);
pictureRequest.Headers.IfModifiedSince = <previous-timestamp>;
HttpResponseMessage pictureResponse = await HttpClient.SendAsync(pictureRequest);
if (pictureResponse.StatusCode == HttpStatusCode.NotModified)
// No need to handle anything else
return;
问题
如果用户的图片没有改变,我不想下载它。这就是我使用IfModifiedSince 属性的原因。它确实适用于 Facebook 的 API,但似乎不适用于 Google 的 API。我怎样才能让它发挥作用?
【问题讨论】:
标签: c# google-api google-plus