Android 14 SDK API level 34

Android 13 SDK API level 33

Android 12L SDK API level 32

Android 12 SDK API level 31

Android 11 SDK API level 30

Android 10 SDK API level 29

Android 9 SDK API level 28

Android 8.1 SDK API level 27

Android 8.0 SDK API level 26

Android 7.1.1 SDK API level 25

Android 7.0 SDK API level 24

Android 6.0 SDK API level 23

Android 5.1 SDK API level 22

Android 5.0 SDK API level 21

Android 4.4w SDK API level 20

Android 4.4 SDK API level 19

Android 4.3 SDK API level 18

Android 4.2 SDK API level 17

Android 4.1 SDK API level 16

Android 4.0.3 SDK API level 15

Android 4.0 SDK API level 14

Android 3.2 SDK API level 13

Android 3.1 SDK API level 12

Android 3.0 SDK API level 11

Android 2.3.3 SDK API level 10

Android 2.3 SDK API level 9

Android 2.2 SDK API level 8

Android 2.1 SDK API level 7

Android 2.0.1 SDK API level 6

Android 2.0 SDK API level 5

Android 1.6 SDK API level 4

Android 1.5 SDK API level 3

Android 1.1 SDK API level 2

Android 1.0 SDK API level 1

43 次阅读 阅读全文

安裝 apidoc

$ npm install -g apidoc

在 test 目錄下新增 testapi 子目錄, 新增腳本

var Timer = module.exports;

/***********************************
$ cd /d G:\OlgCase\QZ\Capybara\server\apidoc>
$ apidoc -i ..\tests\testapi\ -o D:\temp\apidocs2
***********************************/

/**
 * @apiDefine Err
 *
 * @apiError Err 有些错误发生,具体查看错误码描述
 *
 * @apiErrorExample Error-Response:
get_connector_s2c
{
    msgId = 502;
    errorCode = 0;
    causeMsgId = -1; //引起错误的消息id
    errorMsg = '';
}
 */


/**
@api {socket} get_connector_c2s 获取登入服地址
@apiVersion 1.0.0
@apiName get_connector_c2s
@apiGroup 002.login
@apiDescription 通过网关获取登入服地址
@apiParamExample {json} Request-Example:
get_connector_c2s
{
    msgId = 501;
    userId = '';
}
@apiSuccessExample {json} Success-Response:
get_connector_s2c
{
    msgId = 502;
    ip = '';
    port = '';
}

@apiUse Err
 */
Proto.get_connector_c2s = function() {
    this.msgId = 501;
    this.userId = '';
};

Proto.get_connector_s2c = function() {
    this.msgId = 502;
    this.ip = '';
    this.port = '';

};

輸出apidoc

$ apidoc -i ..\tests\testapi\ -o D:\temp\apidocs2

最終輸出效果如下
61354-ra5s2czrvxk.png

45 次阅读 阅读全文

首先要去google 開通兩部驗證
37987-ws94zwqrcwp.png

接著在上面搜索裡面輸入 "應用程式"
65282-0enukcpe1h2s.png

輸入"官網"點建立
72804-69ere9k413x.png

彈出應用程式密碼
11032-vn0jauqocnh.png

$ npm install nodemailer
$ npm install nodemailer-smtp-transport

接下來就是功能

const FROM = 'aaa@gmail.com';
const TO = 'bbb@msn.com';

const transport = nodemailer.createTransport(smtpTransport({
    host: 'smtp.gmail.com', // 服务 由于我用的163邮箱
    port: 465, // smtp端口 默认无需改动
    secure: true,
    auth: {
      user: FROM, // 用户名
      pass: 'xxxxxx' // SMTP授权码
    }
}));

//驗證郵箱合理
if (regEmail.test(TO)){
  let code = randomFns()
  transport.sendMail({
    from: FROM, // 發件郵箱
    to: TO, // 收件列表
    subject: '驗證你的電子郵件', //標題
    html: `
    <p>你好!</p>
    <p>你正在註冊Cocabear社區帳號</p>
    <p>你的驗證碼是:<strong style="color: #ff4e2a;">${code}</strong></p>
    <p>***該驗證碼5分鐘内有效***</p>` // html 内容
  }, 
  function(error, data) {
    console.error("error:", error);
    assert(!error,500,"發送驗證碼錯誤!")
    transport.close();
  })
  //後續工作
  console.log("send success");
}else{
    assert(false,422,'請輸入正確郵件格式!')
}

33666-i9le4i9bhot.png

測試後可以發給外郵

40 次阅读 阅读全文

最近要開發登入系統, 需要用到郵箱作驗證, 首先去qq郵箱開通smtp服務, 點 "設置" -> "帳號"
71894-50qtt9i4ovx.png

然後把smtp服務給開啟
35129-gd4h0xxdctg.png

接著點管理服務, 然後在"安全設置"中生成授權碼
18381-um6usahrivk.png

生成的授權碼無法再次查看, 要記得保存下來, 後面會用到
07263-54kpgcbgnb.png

然後回到node開發對應功能, 需要先安裝兩個套件

$ npm install nodemailer
$ npm install nodemailer-smtp-transport

接下來就是功能

const transport = nodemailer.createTransport(smtpTransport({
    host: 'smtp.qq.com', // qq smtp 地址
    port: 465, // smtp默認端口
    secure: true,
    auth: {
      user: '1300000000@qq.com', // 郵箱用戶名
      pass: 'fexxxxxxxxxx' // SMTP授權碼
    }
}));

const FROM = '1300000000@qq.com';
const TO = '1300000000@qq.com';

//驗證郵箱合理
if (regEmail.test(TO)){
  let code = randomFns()
  transport.sendMail({
    from: FROM, // 發件郵箱
    to: TO, // 收件列表
    subject: '驗證你的電子郵件', //標題
    html: `
    <p>你好!</p>
    <p>你正在註冊Cocabear社區帳號</p>
    <p>你的驗證碼是:<strong style="color: #ff4e2a;">${code}</strong></p>
    <p>***該驗證碼5分鐘内有效***</p>` // html 内容
  }, 
  function(error, data) {
    console.error("error:", error);
    assert(!error,500,"發送驗證碼錯誤!")
    transport.close();
  })
  //後續工作
  console.log("send success");
}else{
    assert(false,422,'請輸入正確郵件格式!')
}

85595-vswp2y548cf.png

但需要注意的是qq smtp只能發給同樣qq郵箱, 不能發給外郵

39 次阅读 阅读全文

C# 使用 HttpListener 開啟 Httpserver

this.listener = new HttpListener();
this.listener.Prefixes.Add(s);
this.listener.Start();
this.Accept();
但跑到 Accept 出現錯誤
http server error: 5 ---> System.Net.HttpListenerException:
26281-r1th1hsoif8.png

如果本地沒有使用root權限運行就會出現無法獲取監聽端口問題, 需要添加對應權限
netsh http add urlacl url=http://*:8081/ user=everyone

43 次阅读 阅读全文