现在我使用邮递员版本 7.34.0。
我导入了 swagger 2.0 api 并创建集合,为 api 请求创建模拟服务器和模拟示例数据。
一切都运转良好。
但是当我发现我们的API发生变化时,我更新了邮递员中的API。但没有办法更新集合。
我在25:35查看了这个网络研讨会教程,在标题中添加了参数,然后演示了如何更新到集合。
但就我而言,我使用 swagger api 更改进行了测试,或者创建了 openapi 3.0 api 的新 yaml,在查询参数中进行了更改或添加/删除请求。但我没有地方可以更新收藏。
我只看到“生成集合”按钮,我不想生成新集合,因为可能有很多 api 我已经添加了示例响应数据,所以我不想为 api 更改生成新集合,我只想更新现有集合,稍后我可以手动修改示例响应数据。
但现在我只能手动更改集合以供api更改,使用起来不太方便。我还看到了使用 body 获取和更新集合的发布 api 。但使用起来比较困难。
是否有任何按钮可以单击以更新其他地方的集合?
多谢。
使用cdk虚拟视口时,需要设置视口的高度
.example-viewport {
height: 800px;
width: 100%;
border: 1px solid black;
}
<cdk-virtual-scroll-viewport class="example-viewport">
<div *cdkVirtualFor="let item of items" class="example-item">{{item}}</div>
</cdk-virtual-scroll-viewport>
Run Code Online (Sandbox Code Playgroud)
但我希望 cdk-virtual-scroll-viewport 如果未达到出现滚动条的最大高度,则将其包装起来。但视口不适用于最大高度。
如果没有水平滚动条,则视口将高度设置为最大高度即可。但在我当前的设计用户界面中,我需要显示水平滚动条,因为有很多内容列,如下图所示。
然后由于视口的高度,滚动条远远低于。行项目会随着时间的推移而增加,但在项目增加到最大高度之前,我希望水平滚动条换行到内容高度,但目前似乎无法实现。
我不使用 mat-table 的原因是我想支持无限滚动并渲染适合屏幕的项目。Mat-table 不支持这一点,如果我继续向下滚动并请求数据,模板中的行项会增加并影响性能。
有人有更好的建议吗?
多谢。
我想在angular6项目的打字稿中使用ipcRenderer,并通过ipcMain与电子应用进行通信。
要在打字稿文件中访问ipcRenderer:
this.ipcRenderer = require('electron').ipcRenderer;
this.ipcRenderer.send('data:submit', '1');
Run Code Online (Sandbox Code Playgroud)
但是当ng为有角度的项目构建时,它会带来以下错误:
ERROR in ./node_modules/electron/index.js
Module not found: Error: Can't resolve 'fs' in '/Users/xxxx/Developer/angular_bootcamp/ipcStudy/node_modules/electron'
ERROR in ./node_modules/electron/index.js
Module not found: Error: Can't resolve 'path' in '/Users/xxxx/Developer/angular_bootcamp/ipcStudy/node_modules/electron'
Run Code Online (Sandbox Code Playgroud)
许多帖子提到角度6不再可以使用'fs'。但是我需要使用electronic和ipcRenderer,有解决方法吗?
非常感谢
source$如果有一些事件触发,我有一个可观察的收集数据流。我想将指定时间发生的这些数据收集到数组中。
const eventSubject = new Subject();
eventSubject.next(data);
const source$ = eventSubject.asObservable();
source$.pipe(takeUntil(destroyed$)).subscribe(
data => {
console.log(data);
}
);
Run Code Online (Sandbox Code Playgroud)
上面source$立即处理发出的数据。
现在我想改进这一点,等待几秒钟并收集在指定时间内发生的所有数据并发出一次。所以我修改为使用bufferTime如下:
const source$ = eventSubject.asObservable();
source$.pipe(takeUntil(destroyed$), bufferTime(2000)).subscribe(
data => {
console.log(data);
}
);
Run Code Online (Sandbox Code Playgroud)
经过测试后bufferTime,我发现即使源没有接收数据,它也会每 2 秒发出一次。如果源没有接收数据,它会发出空对象。
我想要的是只有在source$接收数据时,然后开始缓冲2s,然后发出值。如果 source$ 没有接收数据,它不应该发出任何东西。
我检查了bufferWhen,,windowWhen不windowTime都符合我的要求。它们在每个指定的时间间隔发出信号。
有其他运营商可以做我想做的事吗?
多谢。
我正在尝试使用openssl来使用AES加密/解密消息.通过以下研究后:https : //wiki.openssl.org/index.php/EVP_Symmetric_Encryption_and_Decryption http://www.itc.edu.kh/bib/ebook/storage/Network%20Security%20with%20OpenSSL.pdf ( Chapater 6)
我可以成功加密/解密.
我的情景如下:
- 加密:输入纯文本=>使用aes加密256 cbc =>使用base64编码返回结果
- 解密:输入加密的base64编码的字符串=>解码base64 =>用aes解密256 cbc =>返回解密的纯文本
但我有一些问题:
如何分配加密缓冲区大小:char*out =(char*)malloc(inLength + EVP_MAX_BLOCK_LENGTH); 这够了吗?我承认即使我有一些概念,我也没有详细介绍加密逻辑.如果有人能给我一些加密大小逻辑的大小,我真的很感激.像base64数据与数据的比例是4:3.它有33%的开销.但对于加密,我找不到这种信息.
如何分配解密的缓冲区大小:b64decodeLen =解码b64加密文本.它应该是原始的二进制加密数据长度.char*out =(char*)malloc(b64decodeLen + 1);
根据上面的malloc加密缓冲区大小.我认为纯文本大小将小于二进制加密数据长度.这是正确的吗?如有必要,可以多次调用EVP_EncryptUpdate.什么时候打多次?在哪种情况下我们需要多次调用? /sf/ask/2031133541/
while(1){
EVP_EncryptUpdate(ctx, ciphertext + outlen_tot, &outlen, (unsigned char*)msg + outlen_tot, block_size);
outlen_tot += outlen;
if( msg_len - outlen_tot < block_size ){
break;
}
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,它为block_size加密.如果我把输入字符串长度,那么即使每个大的消息,我也不需要多次调用?
EVP_EncryptUpdate(ctx, out, &out_len, inString, strlen(inString));
Run Code Online (Sandbox Code Playgroud)
非常感谢.
图像文件从服务器下载并始终保存为相同的文件名。
所以在早期版本的 glide 中,我已经过测试
Uri uri = Uri.fromFile(new File(downloadPath));
GlideApp.with(this)
.load(uri)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(mDownloadImageView);
Run Code Online (Sandbox Code Playgroud)
当图像发生变化时,它似乎适用于具有相同名称的文件。上面提到的官方文档Glide Caching 。
但现在在 Glide 4.4.0 中,我再次使用了这段代码,但它不起作用。我需要添加如下签名:
Uri uri = Uri.fromFile(new File(downloadPath));
GlideApp.with(this)
.load(uri)
.signature(new ObjectKey(System.currentTimeMillis()))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(mDownloadImageView);
Run Code Online (Sandbox Code Playgroud)
添加签名密钥后,就可以了。
有人遇到过同样的场景吗?DiskcacheStrategy None 并跳过内存缓存 true 对我来说根本没有影响。
是否有人遇到mat-tab组中的Angular 7 cdk虚拟滚动问题。
https://github.com/angular/material2/issues/13981
我的城市组件模板如下所示
<cdk-virtual-scroll-viewport class="list-container" [itemSize]="50" minBufferPx="200" maxBufferPx="400" (scrolledIndexChange)="getNextBatch($event)">
<div *cdkVirtualFor="let state of statesObservable | async; trackBy: trackByFn" class="list-group-item state-item">
<div class="state">{{state.name}}</div>
<div class="capital">{{state.capital}}</div>
</div>
</cdk-virtual-scroll-viewport>
Run Code Online (Sandbox Code Playgroud)
当将此城市组件作为第二个选项卡放入mat-tab-group时
<mat-tab-group>
<mat-tab label="Country">
<app-country></app-country>
</mat-tab>
<mat-tab label="City">
<app-city></app-city>
</mat-tab>
</mat-tab-group>
Run Code Online (Sandbox Code Playgroud)
stackblitz代码在这里:https ://stackblitz.com/edit/angular7-virtual-scroll-issue
有人对这个问题有想法吗?
我使用的是邮递员 7.34.0
现在我正在测试使用 Postman 为请求创建模拟服务器和模拟数据。
经过一番研究,我还是没能在模拟数据中做出灵活的反应。
我有更新 api,我将设置 pathParams、queryParams 以及 body 来更新数据。
所以我希望我的模拟数据响应包含更新请求中的一些数据。
我还检查了这个Postman Mock Data,它具有以下描述以在响应中使用 {{userId}} 。
例如 PUT {baseUrl}/:ouId/:customerServiceId

我想知道我是否做错了或者邮递员不支持这些功能?
并且还想知道邮递员是否支持模拟响应以编写脚本。我刚刚看到“预请求脚本”和“测试”可以编写脚本。对于模拟示例,似乎只能添加静态数据,而无法编写脚本来构建假响应数据结构。
当从应用程序图标启动时,我正在寻找一些关于返回到上次打开的活动的建议。但仍有一些副作用需要处理。
LauncherActivity 是监听的入口活动
<activity
android:name="com.app.ui.LauncherActivity"
android:configChanges="orientation|keyboardHidden"
android:launchMode="singleTask"
android:screenOrientation="nosensor">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
然后是另一个第二个活动和第三个活动。
我的情况如下:
1. LauncherActivity -> SecondActivity
2. SecondActivity -> ThirdActivity (When launching ThirdAcitivity, SecondActivity will finish itself)
Run Code Online (Sandbox Code Playgroud)
所以当在 ThirdActivity 时,用户单击主页键。如果应用程序是从recentTask 打开的,则将显示上次打开的ThirdActivity。这是我想要的行为。
但是当从应用程序图标快捷方式打开应用程序时,它会转到 LauncherActivity。但我希望它与recentTask 的行为相同。如果最后打开的 ThirdActivity 没有被销毁,那么它应该显示这个而不是 LauncherActivity。
但是,如果应用程序强制停止然后重新启动或ThirdActivity 被销毁,则无需返回到ThirdActivity。回到 LauncherActivity 就OK了。
我一直在寻找解决方案。将最后一个活动保存到 sharedPreference 的建议不适合我的情况。
我想知道如何从最近的任务中实现类似的启动。有没有人可以指导一下。非常感谢。
我正在使用 angular6 来布局我的 UI。
默认的 mat-slide-toggle 按钮如下所示:
但我希望切换按钮看起来像下面的材质图标toggle_on、toggle_off
可以定制吗?
多谢。
我没有很长时间接触C语言.我有一些与中文单词和strncpy有关的问题.
char* testString = "????"
sizeof(testString) => it prints out 4.
strlen(testString) => it prints out 10.
Run Code Online (Sandbox Code Playgroud)
当我想复制到另一个char数组时,我有一些问题.
char msgArray [7];/*这只是一个例子.由于某些限制,我们限制了缓冲区大小.*/
如果我想复制数据,我需要检查
if (sizeof(testString) < sizeof(msgArray)) {
strncopy(msgArray, testString, sizeof(msgArray));
}
Run Code Online (Sandbox Code Playgroud)
它会有问题.结果是它只会复制部分数据.
实际上它应该与之相比
if (strlen(testString) < sizeof(msgArray)) {
}
else {
printf("too long");
}
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么会这样.
如果我想定义限制字符数(包括unicode(例如中文字符),我如何实现定义数组?我想我不能使用char []数组.
非常感谢所有回复.
我的解决方案解决方案:我最终决定剪切字符串以满足有限的字节.
我在代码中发现了一个错误,我们正在启动活动(让我们将其称为SCREEN_ACTIVITY)
Intent intent = new Intent(SharedIntents.INTENT_SCREEN);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
Android文档:使用FLAG_ACTIVITY_NEW_TASK时,如果任务已在您正在启动的活动上运行,则不会启动新活动; 相反,当前任务将简单地以最后一个状态被带到屏幕的前面.
所以在大多数情况下一切正常.
当用户点击某些内容时,该屏幕活动将调用finish().此屏幕活动也将通过服务的传入事件启动或创建.
6053 I/ScreenActivity(15395): onCreate
6682 E/ScreenActivity(15395): finish() Activity
6832 I/ScreenActivity(15395): onDestroy
7284 I/ScreenActivity(15395): onCreate
7911 E/ScreenActivity(15395): finish() Activity
8063 I/ScreenActivity(15395): onDestroy
10555 I/ScreenActivity(15395): onCreate
13413 E/ScreenActivity(15395): finish() Activity
13701 I/ScreenActivity(15395): onCreate
13799 I/ScreenActivity(15395): onDestroy
Run Code Online (Sandbox Code Playgroud)
最后一个是问题.创建ScreenActivity,然后调用finish()本身.但问题是onDestroy被称为很晚.在此之前,来自服务器的传入事件和调用startActivity()会触发一个新的ScreenAcitivty onCreate().问题是ScreenManager类保留了创建和销毁该活动的标志.
在onCreate()回调和onDestroy()回调时设置该标志.因此,对于第10555行和第13701行,ScreenManager设置createFlag = true.对于13799行,设置createFlag = false.在13799行假定未创建活动且未向活动通知事件之后,事件发生.
希望我对此问题的描述清楚.调用finish()后会发生这种情况onStop()和onDestroy()调用这么晚吗?如果是的话,我必须考虑解决方案.如果没有,那么有什么地方可以修改吗?
非常感谢.