質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

898閲覧

C# webAPIの利用で401許可されていません という例外が出る原因が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2022/11/13 03:30

編集2022/11/13 04:01

提示コードですが以下の///コメント部内部で以下の例外が発生する原因がわかりません。なぜでしょうか?

例外
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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/11/13 03:50

401 の理由は https://openweathermap.org/faq#error401 に書いてありますが、API キーを間違えてなければ API キーを生成した直後でまだ有効になってない (数時間かかる可能性もある?) のかも。なお、コード中に API キーをそのまま貼ると悪用される可能性があります…。
guest

回答1

0

ベストアンサー

原因

有効化までに時間がかかるため。時間を置くでした。

参考サイト: https://openweathermap.org/faq#error401

投稿2022/11/13 04:04

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問