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

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

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

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

解決済

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

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

1回答

0グッド

0クリップ

317閲覧

投稿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

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/11/13 05:49

こちらの質問が複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

hoshi-takanori

2022/11/13 03:50

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

回答1

0

ベストアンサー

原因

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

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

投稿2022/11/13 04:04

退会済みユーザー

退会済みユーザー

総合スコア0

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C#

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