7月 27

我在这里主要用来监控每个页面的执行时间

    public class VisitLogFilter : IActionFilter
    {
        private const string DURATION = "DURATION";

        public void OnActionExecuted(ActionExecutedContext context)
        {

            var stopwach = context.RouteData.Values[DURATION] as Stopwatch;
            stopwach.Stop();
            var time = stopwach.Elapsed;

            var url = context.HttpContext.Request.Host + context.HttpContext.Request.Path;
            var agent = ((FrameRequestHeaders)context.HttpContext.Request.Headers).HeaderUserAgent.ToString();
            var ip = IPHelper.GetUserIp(context.HttpContext);
            LogHelper.Info(time.TotalMilliseconds + "\t\t" + ip + "\t\t" + url + "\t\t\t\t" + agent);

            if (context.Result is ViewResult)
            {
                ((ViewResult)context.Result).ViewData[DURATION] = (time.TotalMilliseconds).ToString("#.##");
            }
        }

        public void OnActionExecuting(ActionExecutingContext context)
        {
            var stopwach = new Stopwatch();
            stopwach.Start();
            context.RouteData.Values.Add(DURATION, stopwach);           
        }

    }

 

注入全局

            services.AddMvc(
                config =>
                {
                    config.Filters.Add(new VisitLogFilter()); 
                });

前台展示的代码

                        @if (ViewData.ContainsKey("DURATION"))
                        {
                            <p>页面执行时间 : @(ViewData["DURATION"]) ms.</p>
                        }

written by ocean

7月 25

当程序出现错误的时候将会调用

    public class ExceptionFilter : IExceptionFilter
    { 
        public void OnException(ExceptionContext context)
        { 
            var url = context.HttpContext.Request.Host + context.HttpContext.Request.Path;

            LogHelper.Error(url);
            LogHelper.Error(context.Exception);
        }
    }

全局注入方法

            services.AddMvc(
                config =>
                { 
                    config.Filters.Add(new ExceptionFilter());
                });

written by ocean

7月 23

测试了好几个以前的类都跑不起来,于是灵机一动,在网页中播放声音

                ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\Program Files\Internet Explorer\iexplore.exe");
                startInfo.Arguments = "http://music.163.com/#/outchain/2/28406526/";
                Process process1 = new Process();
                process1.StartInfo = startInfo;
                process1.Start();

虽然不雅,但是在我的场景下是适用的。

written by ocean

7月 11

 一个标签中,同时有 col-xs , col-sm , col-md , col-lg

.col-xs- 超小屏幕 手机 (<768px)

.col-sm- 小屏幕 平板 (≥768px)

.col-md- 中等屏幕 桌面显示器 (≥992px)

.col-lg- 大屏幕 大桌面显示器 (≥1200px)

<div class="col-xs-12 col-sm-9 col-md-6 col-lg-3">                        
</div>

当屏幕尺寸

小于 768px 的时候,用 col-xs-12 类对应的样式;

在 768px 到 992px 之间的时候,用 col-sm-9 类对应的样式;

在 992px 到 1200px 之间的时候,用 col-md-6 类对应的样式;

大于 1200px 的时候,用 col-lg-3 类对应的样式;

written by ocean

7月 08

首先安装JAVA,安装完之后查看版本正常说明OK

java -version

下载android SDK并且添加环境变量

key : ANDROID_HOME
value : D:\Green\android\android-sdk

打开Android SDK Manager。选中以下项目:

Android SDK Build-tools version 23.0.1
Android 6.0 (API 23)
Android Support Repository
Local Maven repository for Support Libraries

下载完之后,将sdk配置到windows环境变量Path中

D:\Green\android\android-sdk\tools;
D:\Green\android\android-sdk\platform-tools

安装Node.js

https://nodejs.org/en/

安装Gith

https://git-for-windows.github.io/

如果是绿色版本要加入path环境变量 

 

运行起来,键入命令

react-native run-android

出现错误

* What went wrong:
A problem occurred configuring project ':app'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

在react native 项目的android目录下新建文件local.properties添加字段

sdk.dir = D:\\Green\\android\\android-sdk

 出现错误

 What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: No connected devices!

这是因为avd没有运行,运行起来即可

written by ocean

7月 05

Console程序中 中文乱码 

引用包

System.Text.Encoding.CodePages

在程序开头调用

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

 

项目发布到ubuntu上

命令行定位到web项目目录

dotnet  publish -r ubuntu.16.04-x64

written by ocean

7月 03

PIP是python下的一个包管理工具

一般直接命令即可

pip install XXX

但是因为国内网络的一些原因,经常会出现超时

可以用国内镜像代替

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

这个是清华大学的镜像,测试下来发现非常快

written by ocean

7月 02

首先需要安装PyMySQL

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

pip install PyMySQL

 

添加数据

import pymysql
#打开数据库连接
db = pymysql.connect("localhost","root","root","db_zuowen",charset='utf8')
#使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor() 
sql="insert into tb_zuowen values ('16211','2222','2017-08-08 00:00:00',1,0)"
#执行SQL语句
cursor.execute(sql)
db.commit()
db.close()

查询数据

import pymysql
#打开数据库连接
db = pymysql.connect("localhost","root","root","db_zuowen",charset='utf8')
#使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor() 
sql="select url,addDate from tb_zuowen limit 10"
#执行SQL语句
cursor.execute(sql)
#获取所有记录列表
results = cursor.fetchall()
for row in results:
    url=row[0]
    addDate=row[1]
    print('url=%s AND addDate=%s'%(url,addDate))
db.close()

更新数据

import pymysql
#打开数据库连接
db = pymysql.connect("localhost","root","root","db_zuowen",charset='utf8')
#使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor() 
sql="update tb_zuowen set Type='72' WHERE url='16211'"
#执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit() 
db.close()

删除数据

import pymysql
#打开数据库连接
db = pymysql.connect("localhost","root","root","db_zuowen",charset='utf8')
#使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor() 
sql="DELETE FROM tb_zuowen WHERE Type>'%d'" %(20)
#执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
#关闭连接
db.close()

written by ocean

7月 01

using HtmlAgilityPack;

using System;

using System.Net.Http;

namespace ConsoleApp1

{

    class Program

    {

        private static HttpClient client = new HttpClient();

        static void Main(string[] args)

        {

            int page = 0;

            bool hasNextPage = true;

            while (hasNextPage)

            {

                page++;

                string u = "http://del.chinaz.com/?kw=&p=0&el=6&ds%5B%5D=1&ds%5B%5D=2&py=1&pl=0&sort=1&suffix%5B%5D=com&suffix%5B%5D=net&dt=0&date=2017-07-15&ba=1&pro=%e5%85%a8&xz=%e5%85%a8%e9%83%a8&cn_txt=&pagesize=30&page="+page;

                var htm = client.GetStringAsync(u).Result;

                HtmlDocument doc = new HtmlDocument();

                doc.LoadHtml(htm);

                var nodes = doc.DocumentNode.SelectNodes("/html/body/div[2]/div[2]/ul/li");

                if (nodes != null && nodes.Count == 31)

                    hasNextPage = true;

                else

                {

                    hasNextPage = false;

                }

                if (nodes == null)

                    continue;

                for (int index = 0; index < nodes.Count; index++)

                {

                    if (index == 0) continue;

                    var value = nodes[index].SelectSingleNode("div[1]/a").InnerHtml;

                    

                        Console.Write(value);

                    if (IsCanRegedit(value))

                    {

                        Console.Write(" Can Regist ");

                        if (CheckQQIsOK(value))

                        { 

                            Console.Write(" QQ OK ");

                            if (IsBeiAn(value))

                            {

                                Console.Write(" BeiAn OK ");

                                LogHelper.Info(value);

                            }

                        }

                    }

                    

                    Console.WriteLine();

                  

                     

                }

            }

            

            //

            Console.WriteLine("Hello World!");

        }

        

            

private static bool IsBeiAn(string url)

        {

            var c = "http://www.soicp.com/index.html?type=1&value=" + url;

            var html = client.GetStringAsync(c).Result;

            return html.Contains("没有找到相关记录") == false;

        }

private static bool IsCanRegedit(string url)

{

    var c = "http://www.qiuyumi.com/whois/?domain=" + url;

    var html = client.GetStringAsync(c).Result;

            return html.Contains("已被注册")==false;

}

private static bool CheckQQIsOK(string url)

        {

            if (!url.StartsWith("http"))

            {

                url = "http://" + url;

            }

            string c = "http://cgi.urlsec.qq.com/index.php?m=check&a=check&callback=url_query&url="+url;

            var json = client.GetStringAsync(c).Result;

            if (json.Contains("\"whitetype\":2"))

            {

                return false;

            }

            return true;

        }

    }

}

written by ocean