win10 应用应该是要有访问网络,网络现在最多的是使用GET,Post,简单的使用,可以用网络的数据:获得博客的访问量。

在使用网络,我们需要设置Package.appxmanifest

网络请求使用GET,首先有要访问的网站

string url = "http://blog.csdn.net/lindexi_gd/article/details/50830924";
//url是我一篇博客,win10 UWP Hmac,我很多博客都是读书笔记

WebRequest是请求基类,需要使用WebRequest.Create(url);

request.Method = "GET";

UWP 的Header设置

 request.Headers["Cookie"] 

接受需要一个函数 AsyncCallback

private void response_callback(IAsyncResult result)

request.BeginGetResponse(response_callback, request);

response_callback接受信息HttpWebRequest http_web_request = (HttpWebRequest)result.AsyncState;

                WebResponse web_response = http_web_request.EndGetResponse(result);
                using (Stream stream = web_response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        string content = reader.ReadToEnd();
                    }
                }

我们需要对content进行正则

正则可以看 正则快速

                        Regex regex = new Regex(@"<span class=""link_view"" title=""阅读次数"">(\d\d\d人阅读)</span>");
                        string str = regex.Match(content).Result("阅读:$1");
                        reminder(str);

如果使用UI,直接使用会出现

我们写函数

        private async void reminder(string str)
        {
            await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                () =>
                {
                    tb.Text += str;
                });
        }

网络很容易就异常

catch (WebException e)
            {
                switch (e.Status)
                {
                    case WebExceptionStatus.CacheEntryNotFound:
                        break;
                    case WebExceptionStatus.ConnectFailure:
                        reminder("ConnectFailure:远程服务器连接失败");
                        break;
                    case WebExceptionStatus.ConnectionClosed:
                        break;
                    case WebExceptionStatus.KeepAliveFailure:
                        break;
                    case WebExceptionStatus.MessageLengthLimitExceeded:
                        reminder("MessageLengthLimitExceeded 网络请求消息长度受到限制");
                        break;
                    case WebExceptionStatus.NameResolutionFailure:
                        break;
                    case WebExceptionStatus.Pending:
                        reminder("Pending 内部异步挂起");
                        break;
                    case WebExceptionStatus.PipelineFailure:
                        break;
                    case WebExceptionStatus.ProtocolError:
                        break;
                    case WebExceptionStatus.ProxyNameResolutionFailure:
                        break;
                    case WebExceptionStatus.ReceiveFailure:
                        break;
                    case WebExceptionStatus.RequestCanceled:
                        break;
                    case WebExceptionStatus.RequestProhibitedByCachePolicy:
                        break;
                    case WebExceptionStatus.RequestProhibitedByProxy:
                        break;
                    case WebExceptionStatus.SecureChannelFailure:
                        break;
                    case WebExceptionStatus.SendFailure:
                        break;
                    case WebExceptionStatus.ServerProtocolViolation:
                        break;
                    case WebExceptionStatus.Success:
                        break;
                    case WebExceptionStatus.Timeout:
                        break;
                    case WebExceptionStatus.TrustFailure:
                        break;
                    case WebExceptionStatus.UnknownError:
                        break;
                }
                reminder(e.Message);
            }

post需要把request.Method = "POST";

传输在request.BeginGetRequestStream(respeonse_streamCallback, request);

        private void respeonse_streamCallback(IAsyncResult result)
        {
            HttpWebRequest http_web_request = (HttpWebRequest) result.AsyncState;
            using (Stream stream=http_web_request.EndGetRequestStream(result))
            {
                //发送byte
                string str = "c";
                byte[] buffer = Encoding.UTF8.GetBytes(str);
                stream.Write(buffer,0,buffer.Length);
            }
            http_web_request.BeginGetResponse(response_callback, http_web_request);
        }

简单方法

            HttpClient http=new HttpClient();
            reminder(await http.GetStringAsync(new Uri(url)));

获整个对象

            HttpResponseMessage response = await http.GetAsync(new Uri(url));
            reminder(await response.Content.ReadAsStringAsync());
            HttpClient http = new HttpClient();
            HttpStringContent http_string =new HttpStringContent("a");
            HttpResponseMessage response = await http.PostAsync(new Uri(url), http_string);
            string str = await response.Content.ReadAsStringAsync();
            reminder(str);
            HttpClient http = new HttpClient();
            InMemoryRandomAccessStream memory =new InMemoryRandomAccessStream();
            HttpStreamContent stream=new HttpStreamContent(memory);
            HttpResponseMessage response = await http.PostAsync(new Uri(url), stream);
            string str = await response.Content.ReadAsStringAsync();
            reminder(str);
            HttpClient http = new HttpClient();
            InMemoryRandomAccessStream memory = new InMemoryRandomAccessStream();
            HttpStreamContent stream = new HttpStreamContent(memory);
            HttpRequestMessage request=new HttpRequestMessage(HttpMethod.Post,new Uri(url));
            request.Content = stream;
            HttpResponseMessage response = await http.SendRequestAsync(request);
            string str = await response.Content.ReadAsStringAsync();

看到有人说CSDN博客访问统计是Cache,如果我们要有很多访问,可以使用

filter.CacheControl.WriteBehavior = HttpCacheWriteBehavior.NoCache;
await Task.Run(() =>
            {
                reminder("\n");
                WebRequest request = WebRequest.Create(url);
                request.Method = "GET";
                request.Headers["Cookie"] = string.Empty;
                request.BeginGetResponse(response_callback, request);
            });

我把之前写的一个刷500

cookie可以使用HttpBaseProtocolFilter

设置cookie

            HttpCookie cookie = new HttpCookie("名称", "blog.csdn.net", "/")
            {
                Value = "a",
            };
            filter.CookieManager.SetCookie(cookie, false);

这写的不好,我将会写网络编程,这一篇会写容易的我的博客授权发在win10.me

原文:http://www.cnblogs.com/linzheng/

博客:blog.csdn.net/lindexi_gd

win10 UWP GET Post的更多相关文章

  1. Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

    安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...

  2. Win10 UWP开发系列:实现Master/Detail布局

    在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档: ...

  3. Win10 UWP开发实现Bing翻译

    微软在WP上的发展从原来的Win7到Win8,Win8.1,到现在的Win10 UWP,什么是UWP,UWP即Windows 10 中的Universal Windows Platform简称.即Wi ...

  4. Win10/UWP开发—使用Cortana语音与App后台Service交互

    上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...

  5. 【Win10 UWP】后台任务与动态磁贴

    动态磁贴(Live Tile)是WP系统的大亮点之一,一直以来受到广大用户的喜爱.这一讲主要研究如何在UWP应用里通过后台任务添加和使用动态磁贴功能. 从WP7到Win8,再到Win10 UWP,磁贴 ...

  6. 【Win10 UWP】URI Scheme(一):Windows Store协议的解析和使用

    协议是Windows Phone和Windows Store应用的一个重要特点,可以做到在不同应用之间进行互相呼起调用.小小协议,学问大着呢.我打算写几篇关于协议在UWP中使用的文章. 这一讲的主要对 ...

  7. 【Win10 UWP】QQ SDK(二):SDK的回调处理

    上一讲,我们介绍了QQ SDK的使用方法,请看<[Win10 UWP]QQ SDK(一):SDK基本使用方法> 一. 回调的基本形式 从前面的介绍中我们知道,我们的应用和QQ客户端之间需要 ...

  8. Win10 UWP应用发布流程

    简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变. 这篇博文记录了我们发布一款Win10 UWP应用的基本流程,希望为 ...

  9. 【Win10 UWP】QQ SDK(一):SDK基本使用方法

    每当开发一个应用需要社交分享的应用时,总是心里咯噔一下:到底什么时候分享能加上QQ和微信?除了WP8.0版本的微信SDK,官方似乎从未正面发布过适应时代发展的QQ SDK,就连后台,也没有一个可以创建 ...

随机推荐

  1. 【Beta】阶段 第四次Daily Scrum Meeting

    每日任务 1.本次会议为第四次 Meeting会议: 2.本次会议在周四下午16:40,课间休息时间在陆大楼召开,召开本次会议为10分钟. 一.今日站立式会议照片 二.每个人的工作 (有work it ...

  2. ASCII中关于大小写字母间隔为32的思考

    一直没有搞清楚为什么在ASCII中要把大小写字母的间隔设置为32,今天才发现这样设置的精妙之处:方便了程序对大小写字母进行转换.请看: ================= 十进制        32 ...

  3. chrome保存网页为单个文件(mht格式)

    网页归档(英语:MIME HTML或MIME Encapsulation of Aggregate HTML Documents,又称单一文件网页或网页封存盘案)为以多用途互联网邮件扩展格式,将一个多 ...

  4. c#中的格式输出

    Reference:http://blog.csdn.net/fightfaith/article/details/48137235

  5. CSS3的颜色渐变效果

    在 animate.css寻找自己想要的动态效果,看到标题Animate.css和按钮Animate it的颜色在逐渐变化,觉得蛮有趣的,把控制变化的相关代码扒了下来,自己分析实现一波. 一开始认为使 ...

  6. 三、js的函数

    三.函数 函数是定义一次但却可以调用或执行任意多次的一段JS代码.函数有时会有参数,即函数被调用时指定了值的局部变量.函数常常使用这些参数来计算一个返回值,这个值也成为函数调用表达式的值. 1.函数声 ...

  7. 《算法导论》学习总结 — XX.第22章 图的基本算法

    BFS(广搜): 广搜就是广度优先搜索,根据名字可以知道,是通过广度来遍历图,也就是层次遍历吧. 在这里以及下面的DFS(深搜),都用到了颜色WHITE,GRAY,BLACK,不过作用不同,具体分别再 ...

  8. 访问 IIS 元数据库失败

    问题: 访问 IIS 元数据库失败.说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Web ...

  9. Sublime Text3使用指南

    前言(Prologue) Sublime Text是一款跨平台代码编辑器(Code Editor),从最初的Sublime Text 1.0,到现在的Sublime Text 3.0,Sublime ...

  10. cors解决ajax请求跨域问题

    Access-Control-Allow-Origin: * 适用tomcat部署的项目 在web.xml里添加以下内容 <filter> <filter-name>CorsF ...