hxy published on included in 部署技巧 内网穿透 ngrok快速穿透 优点:简单,新手上手很快。 缺点:依赖别人的服务器,每次生成的url不同。
frp自由配置 frp可快速实现端口代理,可将本地和服务器、服务器之间端口转发。
下载对应的frp版本,windows或linux版。 配置文件 frp的目录如下 -frp -frpc -frps -frpc.ini -frpc.toml -frps.toml
s代表服务端,也就是提供端口服务的主机,c代表客户端,也就是需要转发的主机 下面以frpc.ini为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [common] server_addr = xx.xx.xx.xx server_port = bind_port [ssh] ;配置ssh端口,用于在其他服务器上访问该服务器 type = tcp local_port = xxx ;本机端口 local_ip = 127.0.0.1 remote_port = xxx ;远程端口 [http] ;配置http type = tcp local_port = xxx ;本机端口 local_ip = 127.0.0.1 remote_port = xxx ;远程端口 frps.
hxy published on included in 技巧 爬虫技巧 抓包 F12查看网络请求,复制cURL(Bash) 点击爬虫代码生成器,生成多种变成语言爬虫代码 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 headers = { 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42', } params = { 'tn': 'resultjson_com', 'word': query, 'pn': pageNum } response = requests.get('https://image.baidu.com/search/acjson', params=params, headers=headers).json() info = response['data'] parsed_info = parse_info(info) for url in parsed_info: save_image(url['url']) Bs解析 直接requests.
hxy published on included in 技巧 Java开发 上期我们主要讲述了后端springboot开发规范和一些基本配置,现在阐述一些常用技巧。 如发邮件、微信配置等,这些都十分简单但易忘,故集中整理。
微信接口集成 调用微信官方api即可。 核心要素为api_key和api_secret,配置在yaml中。
accessToken的获取 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public static String getAccessToken() throws Exception{ HttpClient httpClient = new HttpClient(); String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret; GetMethod getMethod = new GetMethod(url); getMethod.addRequestHeader("accept", "*/*"); //设置Content-Type,此处根据实际情况确定 getMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded"); String result = ""; try { int statusCode = httpClient.
hxy published on included in 技巧 Java开发 开发规范 使用dto封装类实现数据传输,少用Map。 使用@RequestBody和@RequestParam接收请求参数。 接口类型一般为GET、POST、DELETE。 统一使用{“code”: “”, “msg”: “”, data: “"} 的规范返回数据。其中200代表正常,500代表错误。 统一使用全局异常处理,少用try catch,保证代码简洁性。 数据具有关联性时,使用逻辑删除代替物理删除。 统一使用jwt token,从中读取用户信息。防止平行越权漏洞。 加入必要的注释,便于多人合作。 开发者更新后上传jar包至服务器,同时将最新代码commit到github上。 变量名统一小驼峰,类名大驼峰 全局异常处理 GlobalExceptionHandler
SSL的配置 笔者在之前的博客中阐述了nginx部署ssl证书的方式。与此同时,后端也务必加上ssl证书。因为微信小程序等平台校验域名合法性。 与之前稍有不同的是,springboot部署ssl证书要求的是jks格式证书。可采用线上工具将证书合成为jks。 配置过程非常简单,简述如下。
application.yaml 1 2 3 4 5 6 7 server:port:8083# 示例ssl:enabled:truekey-store:classpath:ssl/api.xxx.cn.jkskey-store-password:passwordkey-store-type:JKS HttpsConfig.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 @Configuration public class HttpsConfig { @Value("${custom.
hxy published on included in 技巧 前端杂谈(一) 前端项目集锦 原生 叮当葫芦-认知障碍数据分析平台 “认知障碍数据分析平台”
Jquery Vue vue-element-admin “水果电商后台服务端”
uniapp React “智问领航”
ant-design-pro 函数封装思维 API接口封装 封装request.js用于ajax请求 利用Promise的特性,封装axios、ajax、uni.request、taro.request等等
示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 export const request = ({ url, method, data, headers }) => { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); // 如果是 GET 请求,将 data 转为查询参数 if (method.
hxy published on included in 保研 简历面试 绩点 本科最擅长什么科目,最不擅长什么科目? xxx课为什么分数不高? 项目经历 服务外包大赛中,你作为队长在合作过程中有没有困难,如何解决? 国家级大创项目做了什么?现在处于什么阶段?你将负责什么? 项目有没有正式上线? 科研经历 这篇论文主要的创新点是什么?为什么会想到这个idea?你参与的工作是什么? 为什么会写这篇论文?论文的形成过程有没有老师的指导? 你什么时候开始参与科研?为什么只发表了CCF C论文?这篇完成用了多久? 为什么用GAT传播,GAT和GCN有什么区别? 冷启动问题 你为什么选择了这个方向?有何研究价值? 专业技能考察 pytorch中如何实现维度改变?如何互换维度? 如何实现学习率调度器 batch_size的作用是什么?请讲出两类分批方法 滑动窗口法、分段法
num_workers的作用是什么? 用于指定在加载数据时要使用的子进程(worker)数量。它的主要作用是通过多线程或多进程来并行化数据加载,从而提升训练效率,尤其是在处理大型数据集时。 如何在 PyTorch 中实现模型的梯度累积?这种方法适用于什么场景? 时间序列预测中能否使用交叉验证划分训练集和测试集? 不能。时间序列具有时序依赖,如果交替划分,没有意义。一般把前面的作为训练集,后面的为测试集 是否了解RAG框架?讲一下RAG和微调的区别,和各自的优势。 专业课知识 算法题 其他 本科期间你是如何平衡学业、学生工作和竞赛科研? 作为一名双非学生,你认为自己有什么特点? 你认为自己有什么缺点? 你为什么会选择直博?未来有何职业规划?