मिल वहाँ कुछ चीजों को स्पष्ट करने हैं हाथ से अनुरोध ठीक में:
आपकी तिथि पैटर्न गलत है।
HttpWebRequest request.Date
हैडर केवल .NET फ्रेमवर्क 4 में संशोधित करने के किया जा सकता है और प्रलेखन के अनुसार, System.Net
नाम स्थान हमेशा जीएमटी (UTC) प्रारूप का उपयोग कर मानक फार्म के रूप में इस शीर्ष लेख लिखेंगे। तो, जो भी आप अपनी तिथि को प्रारूपित करने के लिए कर सकते हैं, काम नहीं करेंगे!
अन्य .NET फ़्रेमवर्क संस्करणों में आप HttpWebRequest request.Date
हैडर को संशोधित करने के जब तक आप हैक का एक प्रकार का उपयोग अपनी स्वयं की तिथि निर्धारित करने के लिए है क्योंकि यह सही जीएमटी (यूटीसी) प्रारूप में वास्तविक तिथि का उपयोग करेगा में सक्षम नहीं होगा और प्रारूप (नीचे देखें)।आपकी समस्या के लिए
समाधान (परीक्षण किया है और काम कर रहे):
आपका आयात:
using System.Net;
using System.Reflection;
प्रारूप में आज की तारीख जाओ: सोमवार, 16 जुला 2012 01:16:18 -0000
string today = String.Format("{0:ddd,' 'dd' 'MMM' 'yyyy' 'HH':'mm':'ss' 'K}", DateTime.Now);
यहाँ आता है मुश्किल बात है, तो आप ऐसा करने से HttpWebRequest तारीख हैडर हैक कर सकते हैं:
(अब request.Date = something;
करते हैं, निम्नलिखित के साथ बदलने मत करो)
MethodInfo priMethod = request.Headers.GetType().GetMethod("AddWithoutValidate", BindingFlags.Instance | BindingFlags.NonPublic);
priMethod.Invoke(request.Headers, new[] { "Date", today });
अपने अनुरोध से तारीख प्राप्त करें (केवल परीक्षण करने के लिए):
// "myDate" will output the same date as the first moment:
// Mon, 16 Jul 2012 01:16:18 -0000
// As you can see, you will never get this again:
// Mon, 16 Jul 2012 07:16:18 GMT
string myDate = request.Headers.Get("Date");
इस बिंदु पर आपने सफलतापूर्वक अपने प्रारूप और दिनांक मूल्य को HttpWebRequest दिनांक शीर्षलेख पर सेट कर दिया था!
आशा इस मान लिया जाये कि आप प्राधिकरण हैडर काम करने के लिए तिथि हैडर सेट करना चाहते हैं :-)
स्रोत
2012-07-16 04:22:35
आप आदमी हैं। – Mitciv
ग्रेट समाधान और उदाहरण। मुझे अपनी तिथि के लिए यूनिक्स टाइम स्टैम्प (दशमलव) का उपयोग करना होगा, और यह एकदम सही समाधान था। चीयर्स! – wloescher
मेरी इच्छा है कि मैं इसे एक से अधिक बार बढ़ा सकता हूं! महान जवाब :) – Winnie