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

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

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

Re[1]: TwitterAPIで取得したjsonのデコードについて


(過去ログ 146 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■85308 / inTopicNo.1)  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を取り扱うのは初めてのため重大な勘違いをしている可能性もありますが,
どなたかお教え頂けますと,助かります.
よろしくお願いいたします.

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

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


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -