C#でKintone REST APIを使ってAPPからレコードを取得できません

コード:

     string url = “https://xxxx.cybozu.com/k/v1/”;
            string authenticationSchema = “X-Cybozu-Authorization”;
            string token = “app token”;
            string host = “xxxx.cybozu.com:443”;
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(url);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authenticationSchema, token);
                client.DefaultRequestHeaders.Host = host;

                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/json”));

                // Http Get
                Console.WriteLine(“Retrieving data from kintone…”);
                HttpResponseMessage response = await client.GetAsync(“app=4&id=1”);    // App id & Record id
                if (response.IsSuccessStatusCode)
                {
                    Customer customer = await response.Content.ReadAsAsync<Customer>();
                    Console.WriteLine(“{0}\t${1}\t{2}”, customer.CompanyName, customer.DepartmentName, customer.Telephone);
                }
            }

実行結果:

    response.IsSuccessStatusCodeはtrueが返してきたが、指定したレコードを取得できません。

HttpResponseMessage response = await client.GetAsync(“app=4&id=1”);を
HttpResponseMessage response = await client.GetAsync(“json.record?app=4&id=1”);

に変更したら、520のエラーコードが返してきます。

コードにどこか不正があったかご確認いただけませんか?

 

補足:

「顧客情報」というアプリからレコードを取り出すために、顧客情報のレコードの様子を倣って、Customerクラスを勝手に作り上げました。

yanbingms さん

 

> await client.GetAsync(“json.record?app=4&id=1”);

解決済みかもしれませんが、単純にリソース名が「record.json」の部分が「json.record」と逆になってるだけとかではないでしょうか。

 

520もエラーのbodyをデバッグ時は全て表示させると良いと思います。配下プロパティに原因が記載されている事があります。また、別トピでご紹介したかと思いますが、こちら試されてますでしょうか。他の方法と比べて意図通りのリクエストになっているのかを確認するのは有効な方法ですのでお試し頂ければと思います。エラー時のメッセージも表示されます。

山下さん

ご回答ありがとうございました。

「json.record」を「record.json」に変更した後、さらにプロキシサーバーを指定し、成功にデータを取得できました。

 

解決されたようで良かったです。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。