win10 UWP GET Post
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
win10 UWP GET Post的更多相关文章
- Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App
安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...
- Win10 UWP开发系列:实现Master/Detail布局
在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档: ...
- Win10 UWP开发实现Bing翻译
微软在WP上的发展从原来的Win7到Win8,Win8.1,到现在的Win10 UWP,什么是UWP,UWP即Windows 10 中的Universal Windows Platform简称.即Wi ...
- Win10/UWP开发—使用Cortana语音与App后台Service交互
上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...
- 【Win10 UWP】后台任务与动态磁贴
动态磁贴(Live Tile)是WP系统的大亮点之一,一直以来受到广大用户的喜爱.这一讲主要研究如何在UWP应用里通过后台任务添加和使用动态磁贴功能. 从WP7到Win8,再到Win10 UWP,磁贴 ...
- 【Win10 UWP】URI Scheme(一):Windows Store协议的解析和使用
协议是Windows Phone和Windows Store应用的一个重要特点,可以做到在不同应用之间进行互相呼起调用.小小协议,学问大着呢.我打算写几篇关于协议在UWP中使用的文章. 这一讲的主要对 ...
- 【Win10 UWP】QQ SDK(二):SDK的回调处理
上一讲,我们介绍了QQ SDK的使用方法,请看<[Win10 UWP]QQ SDK(一):SDK基本使用方法> 一. 回调的基本形式 从前面的介绍中我们知道,我们的应用和QQ客户端之间需要 ...
- Win10 UWP应用发布流程
简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变. 这篇博文记录了我们发布一款Win10 UWP应用的基本流程,希望为 ...
- 【Win10 UWP】QQ SDK(一):SDK基本使用方法
每当开发一个应用需要社交分享的应用时,总是心里咯噔一下:到底什么时候分享能加上QQ和微信?除了WP8.0版本的微信SDK,官方似乎从未正面发布过适应时代发展的QQ SDK,就连后台,也没有一个可以创建 ...
随机推荐
- sudoku作业
1.Github项目地址: https://github.com/ataiyang/ls 2.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟 ...
- 201521123104《JAVA程序设计》第三周学习总结
1. 本周学习总结 2. 书面作业 Q1. 代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 201521123010 《Java程序设计》第12周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...
- 201521123103 《java学习笔记》 第十周学习总结
一.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 二.书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出现学 ...
- 201521123049 《JAVA程序设计》 第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...
- 201521123104 《Java程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 1.1 建立数据库,将自己的姓名.学号作为一条记录插入.(截图, ...
- mybatis教程:入门>>精通>>实战
以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活.性能也比hibernate好.而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记.后来项 ...
- Struts 2.5 Filter mapping specifies an unknown filter name [struts2]
问题一:java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start ...
- 微软云Linux服务器 Mysql、tomcat远程连接错误解决办法
在微软云linux服务器成功配置好mysql.tomcat,通过外部链接却发现一直错误.Mysql 一直提示错误代码2003, tomcat连接一直提示EOF. 反复检查配置都无问题,最后得知是微软云 ...
- 接口测试——httpclient介绍与请求方式详解
httpClient工具介绍 HTTP协议可能是现在lntemet上使用得最多.最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源.虽然在JDK的java.net包中已经 ...