質問編集履歴
5
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
.net frameWork
|
30
30
|
|
31
31
|
##### Mastonetライブラリコード
|
32
|
-
```
|
32
|
+
```cs
|
33
33
|
|
34
34
|
public abstract class BaseHttpClient : IBaseHttpClient
|
35
35
|
{
|
4
文章とタイトルを修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
HttpHeaders.Add()関数の使い方が知りたい
|
test
CHANGED
@@ -1,25 +1,17 @@
|
|
1
|
-
提示コードですが`///`のコード下記の例外が発生します。これはどう対処したらいいのでしょうか?
|
2
|
-
|
3
|
-
それとも別のネットワーク系のエラーなのか原因がつかめません。これは何が原因でどう対処すればいいのでしょうか?
|
1
|
+
提示コードですが`///`のコード下記の例外が発生します。これはどう対処したらいいのでしょうか?
|
2
|
+
提示コードは`Mastonet`APIを用いて認証インスタンスを行いたいのですが上手くデータが返ってきていないせいか.jsonでエラーが発生するようです。原因としてはmstdn.jpではHTTPリクエストでユーザーエージェントを入れないとアクセス拒否される仕様のようです。この問題の解決のためUser-agent を操作してgoogle chormを指定すればよいという情報を得たのですがどう修正すればいいのでしょうか?リファレンスを見ましたが引数に何を入れたらいいかわかりません。
|
4
3
|
|
5
4
|
|
6
|
-
##### 試したこと
|
7
|
-
1,プロジェクトファイルの中を見て.jsonファイルを探しましたが見つかりません
|
8
|
-
2,似たような他のAPIも試しましたが同じようなエラーが出ます。
|
9
5
|
|
10
6
|
##### 例外
|
11
7
|
```
|
12
|
-
例外がスローされました: '
|
8
|
+
例外がスローされました: 'System.IO.FileNotFoundException' (ClassLibrary1.dll の中)
|
13
|
-
例外がスローされました: '
|
9
|
+
例外がスローされました: 'System.IO.FileNotFoundException' (System.Private.CoreLib.dll の中)
|
14
|
-
|
10
|
+
例外がスローされました: 'System.IO.FileNotFoundException' (System.Private.CoreLib.dll の中)
|
15
|
-
|
11
|
+
例外がスローされました: 'System.IO.FileNotFoundException' (System.Private.CoreLib.dll の中)
|
12
|
+
型 'System.IO.FileNotFoundException' の例外が System.Private.CoreLib.dll で発生しましたが、ユーザー コード内ではハンドルされませんでした
|
13
|
+
Could not load file or assembly 'Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. 指定されたファイルが見つかりません。
|
16
14
|
```
|
17
|
-
|
18
|
-
|
19
|
-
##### 知りたいこと
|
20
|
-
1、ネットワーク、.jsonどっちが原因なのか知りたい。
|
21
|
-
2,提示例外の対処方法が知りたい。
|
22
|
-
|
23
15
|
##### 参考サイト
|
24
16
|
認証インスタンスサイト: https://mstdn.jp/
|
25
17
|
A https://kmycode.hatenablog.jp/entry/2017/04/23/113328
|
@@ -27,6 +19,7 @@
|
|
27
19
|
C https://makky12.hatenablog.com/entry/2017/05/03/201800
|
28
20
|
エラー: https://ohke.hateblo.jp/entry/2017/04/21/220000
|
29
21
|
ヒント: https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14236476004
|
22
|
+
リファレンス: https://learn.microsoft.com/ja-jp/dotnet/api/system.net.http.headers.httpheaders.add?view=net-7.0
|
30
23
|
##### 利用ライブラリ
|
31
24
|
Mastonet: https://github.com/glacasa/Mastonet/tree/b04bfdb3cfc1b365b2487c8bbd019e4640293306
|
32
25
|
|
@@ -34,6 +27,82 @@
|
|
34
27
|
Windows 10
|
35
28
|
visual sutido 2022
|
36
29
|
.net frameWork
|
30
|
+
|
31
|
+
##### Mastonetライブラリコード
|
32
|
+
```
|
33
|
+
|
34
|
+
public abstract class BaseHttpClient : IBaseHttpClient
|
35
|
+
{
|
36
|
+
protected readonly HttpClient client;
|
37
|
+
public AppRegistration? AppRegistration { get; set; }
|
38
|
+
public Auth? AuthToken { get; set; }
|
39
|
+
|
40
|
+
#region Instance
|
41
|
+
private string instance = string.Empty;
|
42
|
+
public string Instance
|
43
|
+
{
|
44
|
+
get
|
45
|
+
{
|
46
|
+
return instance;
|
47
|
+
}
|
48
|
+
set
|
49
|
+
{
|
50
|
+
CheckInstance(value);
|
51
|
+
instance = value;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
private void CheckInstance(string instance)
|
56
|
+
{
|
57
|
+
var notSupportedList = new List<string> { "gab.", "truthsocial." };
|
58
|
+
var lowered = instance.ToLowerInvariant();
|
59
|
+
if (notSupportedList.Any(n => lowered.Contains(n)))
|
60
|
+
{
|
61
|
+
throw new NotSupportedException();
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
#endregion
|
66
|
+
|
67
|
+
protected BaseHttpClient(HttpClient client)
|
68
|
+
{
|
69
|
+
this.client = client;
|
70
|
+
}
|
71
|
+
|
72
|
+
#region Http helpers
|
73
|
+
///////////////////////////////////////////////////////////////////////////////////////////////
|
74
|
+
private void AddHttpHeader(HttpRequestMessage request)
|
75
|
+
{
|
76
|
+
Debug.WriteLine("AuthToken.AccessToken");
|
77
|
+
request.Headers.Add("Authorization", "107.0.0.0");
|
78
|
+
|
79
|
+
if (AuthToken != null)
|
80
|
+
{
|
81
|
+
Debug.WriteLine("AuthToken.AccessToken " + AuthToken.AccessToken);
|
82
|
+
request.Headers.Add("Authorization", "Bearer " + AuthToken.AccessToken);
|
83
|
+
}
|
84
|
+
}
|
85
|
+
///////////////////////////////////////////////////////////////////////////////////////////////
|
86
|
+
protected async Task<string> Delete(string route, IEnumerable<KeyValuePair<string, string>>? data = null)
|
87
|
+
{
|
88
|
+
string url = "https://" + this.Instance + route;
|
89
|
+
if (data != null)
|
90
|
+
{
|
91
|
+
var querystring = "?" + String.Join("&", data.Select(kvp => kvp.Key + "=" + kvp.Value));
|
92
|
+
url += querystring;
|
93
|
+
}
|
94
|
+
|
95
|
+
using (var request = new HttpRequestMessage(HttpMethod.Delete, url))
|
96
|
+
{
|
97
|
+
AddHttpHeader(request);
|
98
|
+
using (var response = await client.SendAsync(request))
|
99
|
+
return await response.Content.ReadAsStringAsync();
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
```
|
104
|
+
|
105
|
+
##### ライブラリ利用側コード
|
37
106
|
```cs
|
38
107
|
using Mastonet;
|
39
108
|
using Mastonet.Entities;
|
3
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,9 +4,8 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
##### 試したこと
|
7
|
-
プロジェクトファイルの中を見て.jsonファイルを探しましたが見つかりません
|
7
|
+
1,プロジェクトファイルの中を見て.jsonファイルを探しましたが見つかりません
|
8
|
-
.jsonファイルをどこで動的に読み込んでいるわけではないのでパスの指定がわからず参考サイトような修正するための関数を指定できません。
|
9
|
-
似たような他のAPIも試しましたが同じようなエラーが出ます。
|
8
|
+
2,似たような他のAPIも試しましたが同じようなエラーが出ます。
|
10
9
|
|
11
10
|
##### 例外
|
12
11
|
```
|
@@ -18,7 +17,8 @@
|
|
18
17
|
|
19
18
|
|
20
19
|
##### 知りたいこと
|
20
|
+
1、ネットワーク、.jsonどっちが原因なのか知りたい。
|
21
|
-
|
21
|
+
2,提示例外の対処方法が知りたい。
|
22
22
|
|
23
23
|
##### 参考サイト
|
24
24
|
認証インスタンスサイト: https://mstdn.jp/
|
2
文章を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
-
提示コードですが`///`のコード下記の例外が発生します。これはどう対処したらいいのでしょうか?提示コードは`Mastonet`APIを用いて認証インスタンスを用いてクライアントを作成しているコードですが`///`コメント部のコードでコケてしまいます。
|
1
|
+
提示コードですが`///`のコード下記の例外が発生します。これはどう対処したらいいのでしょうか?提示コードは`Mastonet`APIを用いて認証インスタンスを用いてクライアントを作成しているコードですが`///`コメント部のコードでコケてしまいます。
|
2
|
+
参考サイトのヒント サイト部の文章より`https://mstdn.jpは、cloudflareを利用して、アクセス制限をかけているようで、403が返ってるのではないでしょうか?`とあるのでですが.jsonを修正すればいいのか?
|
3
|
+
それとも別のネットワーク系のエラーなのか原因がつかめません。これは何が原因でどう対処すればいいのでしょうか?
|
2
4
|
|
3
5
|
|
4
6
|
##### 試したこと
|
5
7
|
プロジェクトファイルの中を見て.jsonファイルを探しましたが見つかりません
|
6
8
|
.jsonファイルをどこで動的に読み込んでいるわけではないのでパスの指定がわからず参考サイトような修正するための関数を指定できません。
|
7
|
-
|
9
|
+
似たような他のAPIも試しましたが同じようなエラーが出ます。
|
8
10
|
|
9
11
|
##### 例外
|
10
12
|
```
|
1
タイトルを修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
AuthenticationClient().CreateApp()で.jsonの例外が発生する原因と対処方法が知りたい。
|
test
CHANGED
File without changes
|