Ejemplo n.º 1
0
        /// <summary>
        /// 执行一遍所有请求接口
        /// </summary>
        private static async Task RunApisAsync(IUserApi userApiClient)
        {
            var user = new UserInfo
            {
                Account  = "laojiu",
                Password = "******",
                BirthDay = DateTime.Parse("2018-01-01 12:30:30"),
                Email    = "*****@*****.**",
                Gender   = Gender.Male
            };

            var aboutResult = await userApiClient.GetAboutAsync(
                "http://localhost:9999/webapi/user/about",
                "Basic eW91ck5hbWU6MTIzNDU2",
                user,
                "some -value");

            var user1 = await userApiClient.GetByIdAsync("id001");

            var user2 = await userApiClient.GetByAccountAsync("laojiu");

            var user3 = await userApiClient.UpdateWithFormAsync(user, nickName : "老九", nullableAge : null)
                        .Retry(3, i => TimeSpan.FromSeconds(i))
                        .WhenCatch <Exception>()
                        .WhenResult(u => u == null || u.Account == null)
                        .HandleAsDefaultWhenException();

            var user4 = await userApiClient.UpdateWithJsonAsync(user);

            var user5 = await userApiClient.UpdateWithXmlAsync(user);

            var stream = typeof(Program).Assembly.GetManifestResourceStream("Demo.HttpClients.about.txt");
            var file   = new MulitpartFile(stream, "about.txt");
            var user6  = await userApiClient.UpdateWithMulitpartAsync(user, "老九", 18, file);
        }
Ejemplo n.º 2
0
        private static async Task RequestAsync(IUserApi userApi)
        {
            var user = new UserInfo
            {
                Account  = "laojiu",
                Password = "******",
                BirthDay = DateTime.Parse("2018-01-01 12:30:30"),
                Email    = "*****@*****.**",
                Gender   = Gender.Male
            };

            var about = await userApi
                        .GetAboutAsync("webapi/user/about", user, "somevalue");

            var user1 = await userApi
                        .GetByIdAsync("id001");

            var user2 = await userApi
                        .GetByAccountAsync("laojiu");

            var user3 = await userApi
                        .UpdateWithFormAsync(user, nickName : "老九", nullableAge : null)
                        .Retry(3, i => TimeSpan.FromSeconds(i))
                        .WhenCatch <HttpStatusFailureException>();

            var user4 = await userApi
                        .UpdateWithJsonAsync(user);

            var user5 = await userApi
                        .UpdateWithXmlAsync(user).HandleAsDefaultWhenException();

            var file  = new MulitpartFile("file.data");
            var user6 = await userApi
                        .UpdateWithMulitpartAsync(user, "老九", 18, file);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 上传图片得到图片URL,该URL永久有效。
        /// 每个企业每天最多可上传100张图片。
        /// </summary>
        /// <param name="imageFile">图片文件名。</param>
        /// <returns>返回的图片URL,仅能用于图文消息正文中的图片展示,或者给客户发送欢迎语等;若用于非企业微信环境下的页面,图片将被屏蔽。</returns>
        public async Task <UploadImageResponseModel> UploadImage(string imageFile)
        {
            var at = await GetAccessToken();

            using (var image = new MulitpartFile(imageFile))
            {
                return(await WeixinApi.UploadImage(at.Value, image));
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 上传临时素材。
        /// 注意:上传媒体文件不和具体应用有关,任意agent都可以上传。
        /// </summary>
        /// <param name="type">媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)</param>
        /// <param name="file">文件名。</param>
        /// <returns>上传结果。</returns>
        public async Task <UploadMediaResponseModel> UploadMedia(string type, string file)
        {
            var at = await GetAccessToken();

            using (var media = new MulitpartFile(file))
            {
                return(await WeixinApi.UploadMedia(at.Value, type, media));
            }
        }
Ejemplo n.º 5
0
        static async void RunApisAsync()
        {
            var myWebApi = HttpApiClient.Create <UserApi>();

            var user = new UserInfo {
                Account = "laojiu", Password = "******"
            };
            var file = new MulitpartFile("NetworkSocket.dll");

            var auth  = "Basic eW91ck5hbWU6MTIzNDU2";
            var url   = "http://localhost:9999/webapi/user/about";
            var about = await myWebApi.GetAboutAsync(url, auth, user, "some-value");

            Console.WriteLine(about);
            Console.WriteLine();


            var user1 = await myWebApi.GetByIdAsync("id001");

            Console.WriteLine(await user1.Content.ReadAsStringAsync());
            Console.WriteLine();

            var user2 = await myWebApi.GetByAccountAsync("laojiu");

            Console.WriteLine(user2);
            Console.WriteLine();

            var user3 = await myWebApi.UpdateWithFormAsync(user, nickName : "老九", age : 18);

            Console.WriteLine(user3);
            Console.WriteLine();

            var user4 = await myWebApi.UpdateWithJsonAsync(user);

            Console.WriteLine(user4);
            Console.WriteLine();

            var user5 = await myWebApi.UpdateWithXmlAsync(user);

            Console.WriteLine(user5);
            Console.WriteLine();

            var user6 = await myWebApi.UpdateWithMulitpartAsync(user, "老九", 18, file);

            Console.WriteLine(user6);

            myWebApi.Dispose();
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 请求接口
        /// </summary>
        /// <returns></returns>
        private static async Task RequestAsync()
        {
            var userApi = HttpApi.Resolve <IUserApi>();

            var user = new UserInfo
            {
                Account  = "laojiu",
                Password = "******",
                BirthDay = DateTime.Parse("2018-01-01 12:30:30"),
                Email    = "*****@*****.**",
                Gender   = Gender.Male
            };

            var about = await userApi
                        .GetAboutAsync("webapi/user/about", user, "somevalue");

            var aboutCache = await userApi
                             .GetAboutAsync("webapi/user/about", user, "somevalue");

            var user1 = await userApi
                        .GetByIdAsync("id001", CancellationToken.None);

            var user2 = await userApi
                        .GetByAccountAsync("laojiu", CancellationToken.None);

            var user3 = await userApi
                        .UpdateWithFormAsync(user, nickName : "老九", age : 18)
                        .Retry(3, i => TimeSpan.FromSeconds(i))
                        .WhenCatch <HttpStatusFailureException>();

            var user4 = await userApi
                        .UpdateWithJsonAsync(user);

            var user5 = await userApi
                        .UpdateWithXmlAsync(user).HandleAsDefaultWhenException();

            var file = new MulitpartFile("file.data");

            file.UploadProgressChanged += (s, e) =>
            {
                // Console.WriteLine(e.Progress);
            };

            var user6 = await userApi
                        .UpdateWithMulitpartAsync(user, "老九", 18, file);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 请求接口
        /// </summary>
        /// <returns></returns>
        private static async Task RequestAsync()
        {
            // userApi由HttpApiFactory创建,自动接管其生命周期
            // 不应该将其做为全局变量缓存起来
            var userApi = HttpApiFactory.Create <IUserApi>();

            var user = new UserInfo
            {
                Account  = "laojiu",
                Password = "******",
                BirthDay = DateTime.Parse("2018-01-01 12:30:30"),
                Email    = "*****@*****.**",
                Gender   = Gender.Male
            };

            var about = await userApi
                        .GetAboutAsync("webapi/user/about", user, "somevalue");

            var user1 = await userApi
                        .GetByIdAsync("id001", CancellationToken.None);

            var user2 = await userApi
                        .GetByAccountAsync("laojiu", CancellationToken.None);

            var user3 = await userApi
                        .UpdateWithFormAsync(user, nickName : "老九", age : 18)
                        .Retry(3, i => TimeSpan.FromSeconds(i))
                        .WhenCatch <HttpStatusFailureException>();

            var user4 = await userApi
                        .UpdateWithJsonAsync(user);

            var user5 = await userApi
                        .UpdateWithXmlAsync(user).HandleAsDefaultWhenException();

            var file  = new MulitpartFile("file.data");
            var user6 = await userApi
                        .UpdateWithMulitpartAsync(user, "老九", 18, file);
        }
Ejemplo n.º 8
0
        static async void RunApisAsync()
        {
            var myWebApi = HttpApiClient.Create <UserApi>();

            var user = new UserInfo
            {
                Account  = "laojiu",
                Password = "******",
                BirthDay = DateTime.Parse("2018-01-01 12:30:30"),
                Email    = "*****@*****.**"
            };
            var file = new MulitpartFile("NetworkSocket.dll");

            var auth  = "Basic eW91ck5hbWU6MTIzNDU2";
            var url   = "http://localhost:9999/webapi/user/about";
            var about = await myWebApi.GetAboutAsync(url, auth, user, "some-value");

            Console.WriteLine(about);
            Console.WriteLine();


            var user1 = await myWebApi.GetByIdAsync("id001");

            Console.WriteLine(await user1.Content.ReadAsStringAsync());
            Console.WriteLine();

            var user2 = await myWebApi.GetByAccountAsync("laojiu");

            Console.WriteLine(user2);
            Console.WriteLine();

            var user3 = await myWebApi.UpdateWithFormAsync(user, nickName : "老九", nullableAge : 18)
                        .Retry(3, i => TimeSpan.FromSeconds(i))
                        .WhenCatch <TimeoutException>()
                        .WhenCatch <HttpRequestException>()
                        .WhenResult(u => u.Account != "laojiu")

                        .Handle()
                        .WhenCatch <RetryException>(ex => new UserInfo {
                Account = "RetryException"
            })
                        .WhenCatch <Exception>(ex => new UserInfo {
                Account = "Exception"
            })
            ;

            Console.WriteLine(user3);
            Console.WriteLine();

            var user4 = await myWebApi.UpdateWithJsonAsync(user);

            Console.WriteLine(user4);
            Console.WriteLine();

            var user5 = await myWebApi.UpdateWithXmlAsync(user);

            Console.WriteLine(user5);
            Console.WriteLine();

            var user6 = await myWebApi.UpdateWithMulitpartAsync(user, "老九", 18, file);

            Console.WriteLine(user6);

            myWebApi.Dispose();
        }
Ejemplo n.º 9
0
 /// <summary>
 /// 调试视图
 /// </summary>
 /// <param name="target">查看的对象</param>
 public DebugView(MulitpartFile target)
 {
     this.target = target;
 }