C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

TwitterAPIで取得したjsonのデコードについて /てん (17/10/06(Fri) 03:43) #85308
Re[1]: TwitterAPIで取得したjsonのデコードについて /てん (17/10/08(Sun) 03:28) #85327


親記事 / ▼[ 85327 ]
■85308 / 親階層)  TwitterAPIで取得したjsonのデコードについて
□投稿者/ てん (1回)-(2017/10/06(Fri) 03:43:43)

分類:[C#] 

現在TwitterAPIを叩いてタイムラインの取得を使用としています.
以下が質問に関する主要部分のコードです

            var reqUrl = "https://api.twitter.com/1.1/statuses/user_timeline.json";

            var client = new HttpClient();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
            client.DefaultRequestHeaders.Add("Authorization", authHeader);
            var response = await client.GetAsync(reqUrl);
            
            var res = await response.Content.ReadAsStringAsync();

            if(response.IsSuccessStatusCode) {
                Debug.WriteLine(res);
            }
            else {
                Debug.WriteLine("むねん");
            }


レスポンス自体は帰ってきており,IsSuccessStatusCodeがTrueになっているのですが,
レスポンスのボディ部分が,文字化けしており,どのように対処すれば良いのか分かりません.
Debug.WriteLineの部分を,Stringの代わりにStreamで取得したボディを使って,

                using(var sr = new StreamReader(res)) {
                    Debug.WriteLine(sr.ReadToEnd());
                }

とも書き換えてみたのですが,変わらない状態となっております.
ウォッチ機能を用いて中身を覗いてみると,一部エスケープされているようですが,エスケープと文字化けした部分が混在している状態となっており,それが原因でRegex.Unescape()も文字化けしている箇所でコケてしまう状態となっております.

どのように対処をする物なのでしょうか.
当方,webAPIを取り扱うのは初めてのため重大な勘違いをしている可能性もありますが,
どなたかお教え頂けますと,助かります.
よろしくお願いいたします.

[ □ Tree ] 返信 編集キー/

▲[ 85308 ] / 返信無し
■85327 / 1階層)  Re[1]: TwitterAPIで取得したjsonのデコードについて
□投稿者/ てん (3回)-(2017/10/08(Sun) 03:28:19)
自己解決いたしました.
お恥ずかしながら,原因はVisualStudioにてUWPアプリの作成への知識不足でした.

サーバー側からはUTF-8で文字化けせず応答が有り,コンソールアプリでコンソール出力をUTF-8に一致させると問題なく期待通りの返答が得られました.
これまで,出力にはSystem.Diagnostics名前空間のDebugクラスを用いておりましたが,出力ウィンドウがUTF-8で出力せず文字化けが起きていたようです.
[ 親 85308 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -