Windows Phone 十六、HttpClient
2015-06-25 02:53
609 查看
HttpClient 对象也可以实现网络请求
相对于 HttpWebRequest 对象来说,HttpClient 操作更简单,功能更强大
HttpClient 提供一系列比较简单的API来实现基本的请求
同时也支持身份验证和异步操作
注意 Windows Runtime 平台中有两个 HttpClient 类型,调用方式几乎相同,以下内容使用 Windows.Web.Http 中的 HttpClient
发送数据格式
HttpFormUrlEncodedContent
HttpMultipartContent
HttpMultipartFormDataContent
HttpBufferContent
HttpStreamContent
HttpStringContent
设置 Cookie:client.DefaultRequestHeaders.Add("Cookie", "cookie_key1=CookieValue1; cookie_key2=CookieValue2;");
相对于 HttpWebRequest 对象来说,HttpClient 操作更简单,功能更强大
HttpClient 提供一系列比较简单的API来实现基本的请求
同时也支持身份验证和异步操作
注意 Windows Runtime 平台中有两个 HttpClient 类型,调用方式几乎相同,以下内容使用 Windows.Web.Http 中的 HttpClient
发送数据格式
HttpFormUrlEncodedContent
HttpMultipartContent
HttpMultipartFormDataContent
HttpBufferContent
HttpStreamContent
HttpStringContent
设置 Cookie:client.DefaultRequestHeaders.Add("Cookie", "cookie_key1=CookieValue1; cookie_key2=CookieValue2;");
<Grid> <TextBox x:Name="txtUrl"/> <Button Content="DOWN" Click="Button_Click"/> </Grid>
protected async override void OnNavigatedTo(NavigationEventArgs e) { HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new Windows.Web.Http.Headers.HttpCredentialsHeaderValue("Basic", "111:222"); //GET请求 var result = await client.GetStringAsync(new Uri("http://localhost:7080/index.ashx")); var dict = new Dictionary<string, string>(); dict.Add("ke1", "val1"); dict.Add("ke2", "val2"); //await client.PostAsync(new Uri("http://localhost:7080/index.ashx"), new HttpFormUrlEncodedContent(dict)); //await client.PostAsync(new Uri("http://localhost:7080/index.ashx"), new HttpStringContent("abc")); var file = await ApplicationData.Current.LocalCacheFolder.CreateFileAsync("1.txt", CreationCollisionOption.ReplaceExisting); await FileIO.AppendTextAsync(file, "abcdefghijklmnopqrstuvwxyz"); var fileStream = await file.OpenAsync(FileAccessMode.Read); await client.PostAsync(new Uri("http://localhost:7080/index.ashx"), new HttpStreamContent(fileStream)); } private async void Button_Click(object sender, RoutedEventArgs e) { //定义请求Uri var requestUri = new Uri(txtUrl.Text); //创建一个Http请求客户端HttpClient var client = new HttpClient(); //创建定期监视对象 IProgress<HttpProgress> progress = new Progress<HttpProgress>((p) => { //此处参数P,可以获取到进度相关信息 System.Diagnostics.Debug.WriteLine(p.BytesReceived + "/" + p.TotalBytesToReceive); }); //在异步任务中加入进度监控 HttpResponseMessage response = await client.GetAsync(requestUri).AsTask(progress); }
相关文章推荐
- 网络-Switch笔记
- 黑马程序员——Java基础--网络编程
- HttpClient的MultipartEntity
- VIEWGOOD(远古)高清网络视频直播系统概述
- HTTP协议理解与应用总结
- 使用httpclient 4.4实现需要basic auth认证的http请求
- Nmap扫描教程之网络基础服务DHCP服务类
- 【java基础】——网络编程
- 无线网络总结
- 使用volley并结合HttpClient实现上传文件
- 网络编程之python zeromq学习系列之一
- TCP/IP简介
- Android实现网络图片查看器
- 同一端口如何区分不同的Socket
- HTTP协议
- Windows Phone 十五、HttpWebRequest
- 手机访问本地服务器(本地有网络情况)
- JAVA基础--网络编程:获取web数
- HTTP状态代码表
- 浅论Android网络请求库——android-async-http