मैंने Google के मौसम API से जानकारी खींचने का निर्णय लिया - मैं जिस कोड का उपयोग कर रहा हूं वह ठीक काम करता है।Google मौसम API 403 त्रुटि
XmlDocument widge = new XmlDocument();
widge.Load("https://www.google.com/ig/api?weather=Brisbane/dET7zIp38kGFSFJeOpWUZS3-");
var weathlist = widge.GetElementsByTagName("current_conditions");
foreach (XmlNode node in weathlist)
{
City.Text = ("Brisbane");
CurCond.Text = (node.SelectSingleNode("condition").Attributes["data"].Value);
Wimage.ImageUrl = ("http://www.google.com/" + node.SelectSingleNode("icon").Attributes["data"].Value);
Temp.Text = (node.SelectSingleNode("temp_c").Attributes["data"].Value + "°C");
}
}
जैसा कि मैंने कहा, मैं XML फ़ाइल से आवश्यक डेटा खींचने के लिए और प्रदर्शित यह, हालांकि पेज ताजा है या एक मौजूदा सत्र अभी भी सक्रिय है, तो कर रहा हूँ, मैं निम्न त्रुटि प्राप्त:
WebException was unhandled by user code - The remote server returned an error: 403 Forbidden Exception.
मुझे आश्चर्य है कि क्या यह उस विशेष XML फ़ाइल तक पहुंचने के लिए किसी प्रकार की पहुंच सीमा के साथ किया जा सकता है?
इसके अलावा अनुसंधान और सुझावों
के रूप में नीचे वर्णित के अनुकूलन, इस किसी भी तरह सबसे अच्छा अभ्यास कर रहा है, लेकिन मैं पकड़ मैं अब अपवाद के लिए उपयोग शामिल किया है। मैं इस कोड को पेज_लोड पर चलाता हूं इसलिए मैं पेज पर पोस्ट-बैक करता हूं। मैंने तब से कोई समस्या नहीं देखी है। निष्पादन के अनुसार मैं अत्यधिक चिंतित नहीं हूं - मैंने लोड समय में कोई वृद्धि नहीं देखी है और यह समाधान अस्थायी है क्योंकि यह सभी परीक्षण उद्देश्यों के लिए है। मैं अभी भी याहू के मौसम एपीआई का उपयोग करने की प्रक्रिया में हूं।
try
{
XmlDocument widge = new XmlDocument();
widge.Load("https://www.google.com/ig/api?weather=Brisbane/dET7zIp38kGFSFJeOpWUZS3-");
var list2 = widge.GetElementsByTagName("current_conditions");
foreach (XmlNode node in list2)
{
City.Text = ("Brisbane");
CurCond.Text = (node.SelectSingleNode("condition").Attributes["data"].Value);
Wimage.ImageUrl = ("http://www.google.com/" + node.SelectSingleNode("icon").Attributes["data"].Value);
Temp.Text = (node.SelectSingleNode("temp_c").Attributes["data"].Value + "°C");
}
}
catch (WebException exp)
{
if (exp.Status == WebExceptionStatus.ProtocolError &&
exp.Response != null)
{
var webres = (HttpWebResponse)exp.Response;
if (webres.StatusCode == HttpStatusCode.Forbidden)
{
Response.Redirect(ithwidgedev.aspx);
}
}
}
गूगल लेख को दर्शाता हुआ एपीआई से निपटने
धन्यवाद त्रुटि के:
https://stackoverflow.com/a/12011819/1302173 (403 और याद पकड़ो)
https://stackoverflow.com/a/11883388/1302173 (त्रुटि हैंडलिंग और जनरल गूगल एपीआई जानकारी)
https://stackoverflow.com/a/12000806/1302173 (रिस्पांस हैंडलिंग/json कैशिंग - भविष्य की योजनाओं)
वैकल्पिक
मैं इस महान खुला स्रोत विकल्प हाल ही में
OpenWeatherMap - Free weather data and forecast API
उत्कृष्ट उत्तर! मुझे अनुमान लगाया जाएगा कि iGoogle की समाप्ति इस सेवा को प्रभावित कर रही है। मुझे अस्पष्टता से पता था कि एपीआई "केवल विजेट उपयोग के लिए" थी इसलिए मुझे लगता है कि यह अत्यधिक आश्चर्यजनक नहीं है कि सेवा विश्वसनीयता के साथ समस्याएं हैं। मैं उन विकल्पों का उपयोग करने और संभवतः आपके अपवाद हैंडलिंग के पीछे विचारों को अनुकूलित करने में देखता हूं। एक बार फिर धन्यवाद! – mitchimus
शीश! अपनी कोशिश/ब्रेक को हर किसी को तोड़ दें ... +1 –
अगस्त 27, 2012 तक सेवा लगातार 403 त्रुटि और एक संदेश से प्रतिक्रिया दे रही है कि आप स्वचालित प्रश्न भेज रहे हैं .: – ClearCrescendo