チャットワークにAPIでメッセージを100件取得するAPIがあります。
https://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-messages
これをPostmanで取得すると問題なくJSON形式の文字列を取得することができます。
Postmanで変換してくれるC#のRestSharpを使ったコードが下記の内容でした。
var client = new RestClient("https://api.chatwork.com/v2/rooms/(部屋番号)/messages?force=1"); client.Timeout = -1; var request = new RestRequest(Method.GET); request.AddHeader("X-ChatWorkToken", トークン); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content); ```x この通りに取得しても、取得結果が暗号化されている状態です。 こんな感じです。 "body":"\u30d7\u30d7\u30d7\u30d7\u30d7\u30d7\u30d7\ Postmanでは問題なく日本語で表示されています。 足りないコードや、参考サイトがあればご教授いただきたいです。 Postmanはこちらになります。 https://www.postman.com/ 以上、よろしくお願い申し上げます。
> 取得結果が暗号化されている状態です
それは暗号化ではなく Unicode Escape Sequence という形にエスケープされた結果だと思いますよ。ASP.NET Core MVC ではデフォルトでそうなります。
ASP.NET Core MVC の JSON シリアライズ
http://surferonwww.info/BlogEngine/post/2020/03/11/aspnet-core-mvc-controller-json-method-replaces-non-ascii-characters-with-5cuxxxx.aspx
ありがとうございます!
意味がわかりました。
こちらを追加することで、目的のデータを取得できました。
var result = System.Text.RegularExpressions.Regex.Unescape(response.Content);
m(_ _)m
そんなことしなくても普通にデシリアライズできるはずですよ。
回答2件
あなたの回答
tips
プレビュー
