/// <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); }
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); }
/// <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)); } }
/// <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)); } }
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(); }
/// <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); }
/// <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); }
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(); }
/// <summary> /// 调试视图 /// </summary> /// <param name="target">查看的对象</param> public DebugView(MulitpartFile target) { this.target = target; }