рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХреЗ рдХреНрд╖рд┐рддрд┐рдЬ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдЕрдиреБрдХреВрд▓рди рдХреЛ IfModifiedSince HTTP рд╣реЗрдбрд░ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди PCM рдореЗрдВ HttpWebRequest рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП IfModifiedSince рдЧреБрдг рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд▓рдЧрддреА рдереАред рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдХреЛ рд╕реАрдзреЗ рдЕрдиреБрд░реЛрдз рд╣реЗрдбрд░ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
request.Headers[HttpRequestHeader.IfModifiedSince] = timeStamp.ToString();
WindowsPhone рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкреНрд░рддрд┐ рдЖрд╢реНрд╡рд╕реНрдд рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдкрд░рд┐рд╡рд╣рди рд╕реНрддрд░ рдХреА рд╕рднреА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдиреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреАрдВред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП WebHeaderCollection рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реАрдзреЗ рдЗрд╕ рд╣реЗрдбрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ HttpWebRequest.IfModifiedSince рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдкреАрд╕реАрдПрд▓ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред
рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ HttpWebRequest рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐ рдмрдирд╛рдИ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ:
рд╡рд┐рдзрд┐ рдХреЗ рдкрд╣рд▓реЗ рдХреЙрд▓ рдкрд░, рд╣рдо рдЕрдиреБрд░реЛрдз рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХ рд╣реЗрдбрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╣рдо рдЕрдиреБрд░реЛрдз рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ IfModifiedSince рдлрд╝реАрд▓реНрдб рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрдкрддреНрддрд┐ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреИрд╢ рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдмрд╛рдж рдХреА рдХреЙрд▓ рдореЗрдВ, IfModifiedSince рд╣реЗрдбрд░ рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╢реНрдб рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
namespace System.Net { public static class NetExtensions { private static Action<HttpWebRequest, DateTime> _setIfMofifiedSince; public static void SetIfModifiedSince(this HttpWebRequest request, DateTime value) { Guard.NotNull(request); if (_setIfMofifiedSince != null) { _setIfMofifiedSince(request, value); return; } try { request.Headers[HttpRequestHeader.IfModifiedSince] = value.ToString(); return; } // ReSharper disable once EmptyGeneralCatchClause catch { } var property = request.GetType().GetRuntimeProperty("IfModifiedSince"); if (property != null && property.CanWrite) { var method = property.SetMethod; if (method != null) { _setIfMofifiedSince = (Action<HttpWebRequest, DateTime>)method.CreateDelegate(typeof(Action<HttpWebRequest, DateTime>)); } } if (_setIfMofifiedSince == null) { throw new Exception("Unable to set IfModifiedSince"); } _setIfMofifiedSince(request, value); } } }
рдЗрд╕ рд╡рд┐рд╕реНрддрд╛рд░ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд░рд╣рддрд╛ рд╣реИред
request.SetIfModifiedSince(timeStamp);