提示コードですが以下の///
コメント部内部で以下の例外が発生する原因がわかりません。なぜでしょうか?
例外
System.Net.WebException: 'リモート サーバーがエラーを返しました: (401) 許可されていません'
参考サイト
https://qiita.com/komiyasa/items/0dc49a7ffa133aa1ff81
API: https://openweathermap.org/
リファレンス: https://openweathermap.org/current#geo
ソースコード
cs
1using System; 2using System.Collections.Generic; 3using System.Net.Http; 4using System.Text; 5using System.Threading.Tasks; 6using System; 7using System.Net.Http; 8using System.Threading.Tasks; 9using System.Collections.Generic; 10using System.Text; 11using System.Security.Cryptography; 12using Newtonsoft.Json; 13using System.IO; 14using Newtonsoft.Json.Linq; 15using System.Net; 16 17namespace Misskey 18{ 19 internal class Program 20 { 21 static async Task f() 22 { 23 24 } 25 26 27 static void test() 28 { 29 Task.WaitAll(f()); 30 } 31 32 33 static void Main(string[] args) 34 { 35 36 String url = "http://api.openweathermap.org/data/2.5/forecast?q=Tokyo,jp&units=metric&APPID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; 37 WebRequest request = WebRequest.Create(url); 38//////////////////////////////////////////////////////////////////////////// 39 Stream response_stream = request.GetResponse().GetResponseStream(); 40//////////////////////////////////////////////////////////////////////////// 41 StreamReader reader = new StreamReader(response_stream); 42 var obj_from_json = JObject.Parse(reader.ReadToEnd()); 43 var forecast_sum = obj_from_json["weather"][0]["main"]; 44 var forecast_des = obj_from_json["weather"][0]["description"]; 45 var forecast_max_temp = obj_from_json["main"]["temp_max"]; 46 var forecast_min_temp = obj_from_json["main"]["temp_min"]; 47 var forecast_hum = obj_from_json["main"]["humidity"]; 48 var forecast_wind = obj_from_json["wind"]["speed"]; 49 50 string forecast_output = "Tokyo is " + forecast_sum + " now. Description is " + forecast_des + ". Max tempreture is " + forecast_max_temp 51 + "℃. Min tempreture is " + forecast_min_temp + "℃. Humidity is " + forecast_hum + "%. Wind is " + forecast_wind + "m/s. Have a good day!"; 52 Console.WriteLine(forecast_output); 53 54 } 55 56 57 58 } 59 60 61} 62 63
401 の理由は https://openweathermap.org/faq#error401 に書いてありますが、API キーを間違えてなければ API キーを生成した直後でまだ有効になってない (数時間かかる可能性もある?) のかも。なお、コード中に API キーをそのまま貼ると悪用される可能性があります…。

回答1件
あなたの回答
tips
プレビュー