干脆用Retrofit吧看了一下Microsoft.Extensions.Configuration的源碼,
發(fā)現(xiàn)JsonConfigurationProvider的基類ConfigurationProvider里有個(gè)protected void OnReload(),
所以解決方案就很明朗了。
繼承JsonConfigurationProvider建一個(gè)新的Provider,然后override OnReload方法。
然后在Program.cs中
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((builderContext, config) =>
{
IHostingEnvironment env = builderContext.HostingEnvironment;
var c = config as Microsoft.Extensions.Configuration.ConfigurationBuilder;
//c.Sources刪除默認(rèn)的appsettings.json 的 JsonConfigurationProvider
//在c.Sources里添加自定義的Provider,c.Sources是一個(gè)List,注意添加位置
})
.UseStartup<Startup>();測(cè)試發(fā)現(xiàn)windows 550-
這里有個(gè)-應(yīng)該表示多行,所以得接收到550 End
PS TCP是一個(gè)流式協(xié)議
def SendEmail(strinfo, title="測(cè)試郵件", recipients="xxxxxxxxx@qq.com"):
"""
:param strinfo: 通知內(nèi)容字符串
:param recipients: 收件人,多個(gè)收件人用逗號(hào)分割
:return:發(fā)送成功返回0
用于發(fā)送通知到指定郵箱
"""
import smtplib # 用于發(fā)送郵件
from email.mime.text import MIMEText # 用于郵件內(nèi)容格式處理
try:
smtp_server = "smtp.yeah.net" # smtp服務(wù)器
smtp_port = 25 # smtp服務(wù)器端口
smtp_user = "username@yeah.net" # smtp用戶名
password = "password" # smtp密碼
msg = MIMEText(strinfo)#郵件內(nèi)容
msg["Subject"] = "%s" % title # 定義郵件主題
msg["From"] = smtp_user # 發(fā)件人
msg["To"] = recipients # 收件人
email = smtplib.SMTP(smtp_server, int(smtp_port)) # 定義服務(wù)器信息
email.login(user=smtp_user, password=password) # 登陸郵件服務(wù)器
email.sendmail(smtp_user, recipients.split(","), msg.as_string())
# 發(fā)送郵件,recipients以逗號(hào)分割可發(fā)送至多個(gè)收件人
email.quit() # 退出郵箱
return 0
except Exception as e:
pass
# writelog("發(fā)送郵件錯(cuò)誤%s" % e)
我是用smtplib庫(kù) 網(wǎng)易發(fā)送到QQ郵箱 不用刻意設(shè)置什么
1.你的jdk版本多少,試下1.8或者其他版本;
2.是不是maven的maven-compiler-plugin低版本和lombok高版本不兼容
我在python2.7的版本下,得到的是1
Bootstrap Markdown結(jié)合dropZone快速上傳圖片
可以到我的網(wǎng)站上看看
你設(shè)置的是字典,字典對(duì)應(yīng)的是數(shù)據(jù)的最后一條。你如果想取所有的值,可以試著使用數(shù)組而不是字典。
比如說(shuō),let data = res.data.subjects;
let arr = [];
for(let i=0;i<data.length;i++){
arr[i] = data[i];
}因?yàn)槭荘OST請(qǐng)求,所以xml內(nèi)容在請(qǐng)求的body里, 所以你可以直接通過(guò)request.body獲取到xml數(shù)據(jù),但是它是個(gè)字符串, 你要把它轉(zhuǎn)成字典就好了.
建議,寫(xiě)個(gè)shell腳本,把結(jié)果存在csv中,每次壓測(cè)也就kb級(jí)別的數(shù)據(jù)量
已經(jīng)自己看著文檔實(shí)現(xiàn)了!
寫(xiě)了<router-view/>會(huì)配置路由么?
路由配置上就行了。
至于是左滑動(dòng)還是右滑動(dòng),可以動(dòng)態(tài)綁定name,注冊(cè)路由時(shí)meta中寫(xiě)上索引
{
path: '/supervise',
name: 'supervise',
component: Supervise,
meta: { index: 2 }
},
在當(dāng)前tab組件watch $route
watch: {
$route(to, from) {
if(to.meta.index < from.meta.index) {
this.transitionName = "slide-forward"
} else {
this.transitionName = "slide-back"
}
}
}跨域問(wèn)題,你可以看得到返回的數(shù)據(jù),但是無(wú)法直接使用數(shù)據(jù)
1.設(shè)置Y軸的axisLine/splitline/axisTick為隱藏
2.設(shè)置series的label顯示,position設(shè)為right
源代碼,記得在4.0以上版本運(yùn)行,低版本請(qǐng)自行修改配置
app.title = '世界人口總量 - 條形圖';
option = {
title: {
text: '世界人口總量',
subtext: '數(shù)據(jù)來(lái)自網(wǎng)絡(luò)'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
data: ['2012年']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value',
boundaryGap: [0, 0.01],
splitLine: {
show: false
}
},
yAxis: {
type: 'category',
data: ['巴西', '印尼', '美國(guó)', '印度', '中國(guó)', '世界人口(萬(wàn))'],
axisLine: {
show: false
},
splitLine: {
show: false
},
axisTick: {
show: false
},
},
series: [
{
name: '2012年',
type: 'bar',
label: {
show: true,
position: 'right'
},
data: [19325, 23438, 31000, 121594, 134141, 681807]
}
]
};access_token失效了,應(yīng)該是你別的地方調(diào)用了access_token,而文件沒(méi)有更新?
都用 docker 了,直接用對(duì)應(yīng)的 image 不就好了么,關(guān)編譯什么事呢。
這種問(wèn)題請(qǐng)?zhí)岣顿M(fèi)問(wèn)題
//因?yàn)槭敲ご蜻^(guò)來(lái)的,我驗(yàn)證的數(shù)據(jù)并不是這個(gè),但是為了符合題目還是寫(xiě)了這個(gè),所以參數(shù)有可能在表格中位置會(huì)
//有點(diǎn)不對(duì),但是實(shí)驗(yàn)一下還是可以很容易看出來(lái)的。
String[] p = {"p1","p2"};
String[] price = {"10","20"};
int rindex = 0;
Name name;
HSSFWorkbook workbook = new HSSFWorkbook();//excel文件對(duì)象
HSSFSheet sheet = workbook.createSheet("Info");//工作表對(duì)象
HSSFSheet hidesheet = workbook.createSheet("hideSheet");//隱藏一些信息
HSSFRow row = hidesheet.createRow(rindex++);
//設(shè)置物品編號(hào)
for(int i=0;i<p.size();i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(p[i]);
}
// 名稱管理
name = workbook.createName();
name.setNameName("物品編號(hào)");
name.setRefersToFormula("hidesheet!$A$"+rindex+":$"+judgePos(p.size())+"$"+rindex);
for(int i=0;i<p.size();i++){
HSSFRow row = hidesheet.createRow(rindex++);
HSSFCell cell = row.createCell(0);
cell.setCellValue(p[i]);
cell = row.createCell(1);
cell.setCellValue(price[i]);
}
String[] title = {"物品編號(hào)","物品價(jià)格"};
setTitle(sheet ,title,0);
HSSFRow allocationRow = sheet.createRow(rindex++);
**allocationRow.createCell(4).setCellFormula("LOOKUP(A2,hideSheet!A2:A3,hideSheet!B2:B3)");**
// 得到驗(yàn)證對(duì)象
DataValidation validation = getDataValidationByFormula("物品編號(hào)",2,1);
// 工作表添加驗(yàn)證數(shù)據(jù)
sheet.addValidationData(validation);
// 生成輸入文件
File file = new File(filePath);
FileOutputStream out = new FileOutputStream(file);
workbook.write(out);
out.close();
//以上大概就是個(gè)全過(guò)程,主要是設(shè)置LOOKUP函數(shù),我原先一直沒(méi)搞出來(lái)是因?yàn)楹瘮?shù)參數(shù)寫(xiě)錯(cuò)了,搞半天沒(méi)搞出來(lái),今天搞出來(lái)了。
//用到的函數(shù)我也貼一下,有些用別人的,有些自己寫(xiě)的。
/**
* 返回所在列的字符
* @param size
* @return
*/
public String judgePos(int size) {
String[] args= {"A","B","C","D","E","F","G","H","I","J","K","L","M","N",
"O","P","Q","R","S","T","U","V","W","X","Y","Z"};
boolean tag=true;
StringBuffer reversepos=new StringBuffer();
while(tag) {
int pos=size%26;
if(pos==0) {
pos=25;
size--;
}else {
pos-=1;
}
int result = size/26;
if(result==0) {
reversepos.append(args[pos]);
tag=false;
}else {
reversepos.append(args[pos]);
size/=26;
}
}
return reversepos.reverse().toString();
}
/**
* 創(chuàng)建表頭
* @param sheet
* @param title
*/
public void setTitle(HSSFSheet sheet,String[] title,int index) {
HSSFRow row = sheet.createRow(index);
for(int i=0;i<title.length;i++) {
HSSFCell userNameLableCell = row.createCell(i);
userNameLableCell.setCellValue(title[i]);
}
}
/**
* 使用已定義的數(shù)據(jù)源方式設(shè)置一個(gè)數(shù)據(jù)驗(yàn)證
*
* @param formulaString
* @param startRow
* @param startCol
* @return
*/
public static DataValidation getDataValidationByFormula(String formulaString,int startRow,int startCol) {
// 加載下拉列表內(nèi)容
DVConstraint constraint = DVConstraint.createFormulaListConstraint(formulaString);
// 設(shè)置數(shù)據(jù)有效性加載在哪個(gè)單元格上。
// 四個(gè)參數(shù)分別是:起始行、終止行、起始列、終止列
int firstRow = startRow-1;
int lastRow = startRow-1;
int firstCol = startCol - 1;
int lastCol = startCol - 1;
CellRangeAddressList regions = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol);
// 數(shù)據(jù)有效性對(duì)象
DataValidation validation = new HSSFDataValidation(regions, constraint);
return validation;
}
}
如果是分享鏈接的話是永久有效。有問(wèn)題歡迎加入304391744 BIMFACE官方技術(shù)交流群,回復(fù)會(huì)更及時(shí)
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。