鸿蒙OS应用试题例题(绿色的是答案)

开发者小李正在使用DevEco Studio开发一款面向HarmonyOS的应用,该应用需要在多种设备上表现出一致的稳定性和优秀的用户体验。为了确保高质量的发布,小李意识到需要实施一套全面的测试策略,覆盖代码的自动化测试和手动测试,还需要衡量代码的测试覆盖率,以确定测试的充分性。在DevEco Studio的测试框架下,以下描述中,哪些是正确的

A.无论选择Instrument Test还是Local Test,DevEco Studio均内置了详尽的测试报告功能,实时显示测试进度,且直接在IDE中可查看代码覆盖率报告,无需外部工具。

B.Local Test:测试用例位于test目录,无需设备或模拟器环境,直接在本地执行,专注于ArkTS语言,推荐适用于API版本11及以上的Hvigor工程,目前特别限于Stage模型,并不涵盖C/C++方法。

C.DevEco Studio的测试框架提供测试用例执行能力,包含基础接口以编写和输出测试结果,鼓励用户创建易于维护的自动化测试脚本,并且统计代码覆盖率。

D.Instrument Test:测试用例存储于项目的ohosTest目录,要求在HarmonyOS设备或模拟器上执行,兼容ArkTS与JS语言编写。

在大型软件工程中,一般会伴随着多团队开发,各团队开发自己的业务模块,最后再由集成交付团队集成到一起,下面哪些是大型应用模块化开发最佳实践

A.

使用路由表进行模块间解耦。

B.

一次上架多端部署。

C.

若多个模块依赖了不同版本的HAR,使用OHPM的overrides机制配置指定使用哪个版本的HAR,以减少包大小。

D.

避免用户首次下载应用耗时过长,及过多占用用户空间,不常用功能做成按需加载

如下ABC 3处手势,有机会执行的是哪几处?

@Entry

@Component

struct ListTest {

scroller: Scroller = new Scroller()

scroller2: Scroller = new Scroller()

scroller3: Scroller = new Scroller()

private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

private childRecognizer: GestureRecognizer = new GestureRecognizer()

private currentRecognizer: GestureRecognizer = new GestureRecognizer()

private lastOffset: number = 0

build() {

Stack({ alignContent: Alignment.TopStart }) {

Scroll(this.scroller) {

Column() {

Text("Scroll Area")

.width('90%')

.height(150)

.backgroundColor(0xFFFFFF)

.borderRadius(15)

.fontSize(16)

.textAlign(TextAlign.Center)

.margin({ top: 10 })

List({ space: 20, initialIndex: 0 }) {

ForEach(this.arr, (item: number) => {

ListItem() {

Text('' + item)

.width('100%').height(100).fontSize(16)

.backgroundColor(Color.Blue)

.textAlign(TextAlign.Center).borderRadius(10)

}

}, (item: string) => item)

}

.listDirection(Axis.Vertical) // 排列方向

.scrollBar(BarState.Off)

.friction(0.6)

.divider({ strokeWidth: 2, color: 0xFFFFFF, startMargin: 20, endMargin: 20 }) // 每行之间的分界线

.edgeEffect(EdgeEffect.None) // 边缘效果设置为Spring

.height(1000)

.width('90%')

.id("inner")

}.width('100%')

}

.id("outer")

.height(600)

.scrollable(ScrollDirection.Vertical) // 滚动方向纵向

.scrollBar(BarState.On) // 滚动条常驻显示

.scrollBarColor(Color.Gray) // 滚动条颜色

.scrollBarWidth(10) // 滚动条宽度

.edgeEffect(EdgeEffect.None)

.onScroll((xOffset: number, yOffset: number) => {

console.info(xOffset + ' ' + yOffset)

})

.onScrollEdge((side: Edge) => {

console.info('To the edge')

})

.onScrollStop(() => {

console.info('Scroll Stop')

})

A .gesture(

TapGesture({ count: 2 })

.onAction((event: GestureEvent) => {

if (event) {

this.value = JSON.stringify(event.fingerList[0])

}

})

)

B .gesture(

PanGesture({PanDirection.Vertical})

.onActionUpdate((event: GestureEvent)=>{

console.log("zcb onActionUpdate event offsetY " + event.offsetY + " this.lastOffset " + this.lastOffset + " this.childRecognizer.getGestureState() " + this.childRecognizer.getState())

})

)

C .parallelGesture(

PanGesture({PanDirection.Vertical})

.onActionUpdate((event: GestureEvent)=>{

console.log("zcb onActionUpdate event offsetY " + event.offsetY + " this.lastOffset " + this.lastOffset + " this.childRecognizer.getGestureState() " + this.childRecognizer.getState())

})

)

}.width('100%').height('100%').backgroundColor(0xDCDCDC)

}

}

A.NA

B.C

C.B

D.A

下面关于混淆的描述正确的是

A.API 10及以上版本的Stage模型、编译模式为release时,默认开启代码混淆功能;默认的混淆功能仅会混淆函数参数和局部变量的名称。

B.代码混淆已经被集成了到SDK中,可以在DevEco Studio中方便地使用。

C.混淆支持ArkTS/TS/JS文件的混淆

D.针对工程源码的混淆可以降低工程被破解攻击的风险,缩短函数名、类名和属性名,减小应用的大小。

以下数据类型中,哪些是Sendable数据。

import { lang } from '@kit.ArkTS';

class C {}

interface I extends lang.ISendable {}

A.interface I

B.number

C.string

D.class C

下面关于混淆规则描述正确的是

A.-keep-global-name [,identifiers,.]:指定想保留的属性名

B.-keep-file-name [,identifiers,.]:指定要保留的文件/文件夹的名称

C.-keep-property-name [,identifiers,]:指定要保留的顶层作用域的名称

D.-print-namecache filepath: 将名称缓存保存到指定的文件路径。

下面关于动态import描述正确的是

A.动态import根据入参是否为常量字符串分为常量动态import和变量动态import两种

B.常量动态import也必须配置runtimeOnly选项

C.HAR模块间只有变量动态import时可以进行模块解耦

D.动态导入import()是个异步接口,调用后将返回一个promise

Code Linter针对ArkTS/TS代码进行最佳实践/编程规范方面的检查,最佳实践/编程规范方面的检查规则可以配置,针对codelinter的配置项一下哪些说法是正确的

A.ruleSet:配置检查使用的规则集,规则集支持一次导入多条规则。

B.ignore:配置无需检查的文件目录,其指定的目录或文件需使用相对路径格式,相对于code-linter.json5所在工程根目录,例如:build/**/*。

C.rules:可以基于ruleSet配置的规则集,新增额外规则项,但是无法修改ruleSet中规则默认配置

D.files:配置待检查的文件名单,如未指定目录,规则适用于所有文件,例如:[“**/*.ets”,”**/*.js”,”**/*.ts”]

依次点击A、B、C、D四个按钮,其中不会触发UI刷新的是:

@Entry

@Component

struct Index {

@State count: number = 0;

@State @Watch('onValueChange') value: number = 50;

onValueChange() {

this.count = this.value;

}

build() {

Column() {

Text(`${this.count}`)

Button("A")

.onClick(() => {

this.count = 0;

})

Button("B")

.onClick(() => {

for (let i = 0; i < 1000; i++) {

this.count = i;

}

for (let i = 1000; i > 0; i--) {

this.count = i;

}

this.count--;

})

Button("C")

.onClick(() => {

this.value = 100;

})

Button("D")

.onClick(() => {

setInterval(()=>{

this.count++;

}, 1000)

})

}

}

}

A.B

B.D

C.A

D.C

在开发过程中,我们可以将每个功能模块作为一个独立的Module进行开发。关于Module,下列选项说法正确的是?

A.Shared类型的Module:动态共享库。HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。

B.HAR类型的Module:静态共享库。HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝。

C.feature类型的Module:应用的动态特性模块,编译后生成feature类型的HAP。一个应用中可以包含一个或多个feature类型的HAP,也可以不包含。

D.entry类型的Module:应用的主模块,包含应用的入口界面、入口图标和主功能特性,编译后生成entry类型的HAP。每一个应用分发到同一类型的设备上的应用程序包,可以包含一个或多个entry类型的HAP。

处于安全因素考虑,ArkTS不支持以下哪些语法。

A.

with()

B.

eval()

C.

new Function('a', 'b', 'return a + b')

D.

Object.entries()

下面关于混淆的描述正确的是

A.在工程build-profile.json5中的obfuscation.ruleOptions.files字段中配置该工程的混淆配置,该配置仅在编译该工程时生效。

B.支持顶层作用域名称、属性名称、文件名称等多种混淆功能

C.可以在HAR模块工程的build-profile.json5中的obfuscation.consumerFiles字段中配置导出的混淆配置,该配置仅在编译依赖该HAR的模块时生效。

D.修改应用混淆配置,新配置需要重新全量编译应用才能生效

以下哪些方式可以实现ArkWeb同层渲染能力 ()

A.

Web(...).enableNativeEmbedMode(true).registerNativeEmbedRule("object", "test")

<object id="view" type="test/contents" width="100%" height="100%" style="background-color:red"/>

B.

Web(...).enableNativeEmbedMode(true).registerNativeEmbedRule("native", "test")

<object id="view" type="native/contents" width="100%" height="100%" style="background-color:red"/>

C.

Web(...).enableNativeEmbedMode(true)

<object id="view" type="native/contents" width="100%" height="100%" style="background-color:red"/>

D.

Web(...).enableNativeEmbedMode(true)

<embed id="view" type="native/contents" width="100%" height="100%" style="background-color:red"/>

下面代码符合ArkTS编程规范的是

A.

for (let idx = 0; idx <5;++idx) console.log(idx);

B.

if(condition) {

console.log('success');}

c.

let maxcount =1Qy

let iscompleted =false;

let pointx = 0;

let pointy = 0;

D.

let maxcount = 10,iscompleted =false;

let pointx,pointy;

pointx = 10; pointY =0;

在使用DevEco Studio的Profiler进行Harmony0S应用或服务内存管理优化时,以下哪个描述最准确地概述了“Allocation Insight"功能在识别和解决内存问题中的作用

A.Allocation Insight通过分析应用服务运行时的内存分配及使用情况,辅助定位内存泄漏、内存抖动和溢出问题,支持优化内存使用

B.Allocation Insight主要关注于内存碎片整理,减少内存分配的不连续性问题,对内存泄漏和溢出问题的检测不是其主要功能

C.Allocation Insight详细展示应用运行时的每条语句柄分配记录,便于开发者逐一检查内存使用,但不提供内存泄漏的自动识别功能

D.Allocation Insight仅提供内存分配总量的概览,帮助开发者宏观了解内存使用趋势,但对于具体泄漏或抖动问题无能为力

关于自动化测试描述正确的是:

A.Fuzz测试就是通过构造不规则的输入,从而触发程序的某种bug;Fuzz测试属于白盒测试。Fuzz测试

也叫做模糊测试,通过输入非法字段,并观察软件是否异常来实现。一方面可以通过向软件输入非法字段,另一方面也可以通过向网络服务发送异常报文。

B.自动化测试因提高效率,减少重复工作的特性而被广泛采用;自动化测可以替代手动测试在处理复

杂、难以预测的用户交互或特殊边界条件。

C.XTS子系统是认证测试套件的集合,当前包括acts(application compatibility test suite)应用兼容

性测试套件,后续会拓展dcts(device compatibility test suite)设备兼容性测试套件等。

D. DT(开发者测试)就是UT,可看护的范围包括边界值问题、空指针或赋值错误,内部业务逻辑问题等

等。

下面关于方舟字节码文件格式描述正确的是

A.方舟字节码文件中不包含字节码文件内容的adler32校验和

B.方舟字节码文件中数据类型uint16_t表示16-bit无符号整数,采用小端字节序

C.方舟字节码文件中数据类型uint32_t表示32-bit无符号整数,采用大端字节序

D.方舟字节码文件是ArKTS/TS/JS编译后的二进制产物

在基于Stage模型开发的应用项目代码下,每个模块都存在一个module.json5配置文件,用于配置模块的基本信息,以下module.json5配置文件正确的是

A.

{

"module": {

"name": "aName",

"type": "har",

"deviceTypes": [

"default", "tablet" ]

}

}

B.

{

"module": {

"name": "cName",

"type": "hsp",

"description": "$string:desc",

"deviceTypes": [

"default",

"tablet"

],

"deliveryWithInstall": true,

"pages": "$profile:main_pages"

}

}

C.

{

"module": {

"name": "bName",

"type": "shared",

"deviceTypes": [

"default",

"tablet"

],

"deliveryWithInstall": true,

"pages": "$profile:main_pages"

}

}

D.

{

"module": {

"name": "application",

"type": "feature",

"description": "$string:module_desc",

"mainElement": "ApplicationAbility",

"deviceTypes": [

"default",

"tablet"

],

"deliveryWithInstall": true,

"installationFree": false,

"pages": "$profile:main_pages",

"abilities": [

{

"name": "ApplicationAbility",

"srcEntry": "./ets/applicationability/ApplicationAbility.ets",

"description": "$string:ApplicationAbility_desc",

"icon": "$media:icon",

"label": "$string:ApplicationAbility_label",

"startWindowIcon": "$media:startIcon",

"startWindowBackground": "$color:start_window_background",

"exported": true

}

]

}

}

以下napi代码有问题的是

A.

struct CallbackContext {

napi_env env = nullptr;

napi_ref callbackRef = nullptr;

int32_t retData = 0;

};

void callbackTest(CallbackContext *context)

{

uv_loop_s *loop = nullptr;

napi_get_uv_event_loop(context->env, &loop);

uv_work_t *work = new uv_work_t;

context->retData = 1;

work->data = (void *)context;

uv_queue_work(

loop, work, [](uv_work_t *work) {},

// using callback function back to JS thread

[](uv_work_t *work, int status)

{

CallbackContext *context = (CallbackContext *)work->data;

napi_value callback = nullptr;

napi_get_reference_value(context->env, context->callbackRef, &callback);

napi_value retArg;

napi_create_int32(context->env, context->retData, &retArg);

napi_value ret;

napi_call_function(context->env, nullptr, callback, 1, &retArg, &ret);

napi_delete_reference(context->env, context->callbackRef);

if (work != nullptr) {

delete work;

}

delete context;

}

);

}

B.

napi_ref g_ref = nullptr;

/***** excute in main thread *****/

static napi_value DemoInMainThread(napi_env env, napi_callback_info info)

{

napi_value string = nullptr;

napi_create_string_utf8(env, "bar", NAPI_AUTO_LENGTH, &string);

napi_create_reference(env, string, 1, &g_ref);

return string;

}

/***** excute in worker thread *****/

static napi_value DemoInWorkerThread(napi_env env, napi_callback_info info)

{

napi_value string = nullptr;

napi_get_reference_value(env, g_ref, &string);

napi_value object = nullptr;

napi_create_object(env, &object);

napi_set_named_property(env, object, "foo", string);

return object;

}

C.

static napi_value Demo(napi_env env, napi_callback_info info)

{

constexpr size_t arrSize = 1000;

napi_value arrBuffer = nullptr;

void *data = nullptr;

napi_create_arraybuffer(env, arrSize * sizeof(int32_t), &data, &arrBuffer);

int32_t *i32Buffer = reinterpret_cast<int32_t *>(data);

for (int i = 0; i < arrSize; i++) {

i32Buffer[i] = i;

}

return arrBuffer;

}

D.

static napi_value Demo(napi_env env, napi_callback_info info)

{

size_t argc = 1;

napi_value args[1] = {nullptr};

napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);

napi_value sizeObj = nullptr;

napi_handle_scope scope = nullptr;

napi_open_handle_scope(env, &scope);

napi_call_function(env, nullptr, args[0], 0, nullptr, &sizeObj);

napi_close_handle_scope(env, scope);

int64_t width = 0;

napi_value result = nullptr;

napi_get_element(env, sizeObj, 0, &result);

napi_get_value_int64(env, result, &width);

return result;

}

以下关于ArkTS线程实例间传输实现方式描述正确的是

import { taskpool, worker } from '@kit.ArkTS';

@Sendable

class A {}

let a: A = new A();

@Concurrent

function foo(a: A) {}

let task: taskpool.Task = new taskpool.Task(foo, a)

let w = new worker.ThreadWorker("entry/ets/workers/Worker.ets")

taskpool.execute(task).then(() => {});

w.postMessageWithSharedSendable(a);

task.setCloneList([a]);

taskpool.execute(task).then(() => {});

w.postMessage(a);

A.

taskpool.execute(task).then(() => {});,TaskPool 共享传输实现方式

B.

task.setCloneList([a]);

taskpool.execute(task).then(() => {});,TaskPool 共享传输实现方式

C.

w.postMessage(a);,Worker 共享传输实现方式

D.w.postMessageWithSharedSendable(a);,Worker 共享传输实现方式

Image组件以下哪些方式可显示图片?

A.

@Entry

@Component

struct ImageExample {

build() {

Column({ space: 10 }) {

Image($r('app.media.earth'))

.width(100)

.height(100)

}

}

}

B.

@Entry

@Component

struct ImageExample {

build() {

Column({ space: 10 }) {

Image("https://www.example.com/xxx.png")

.width(100)

.height(100)

}

}

}

C.

import image from '@ohos.multimedia.image'

@Entry

@Component

struct ImageExample {

@State imagePixelMap: image.PixelMap | undefined = undefined

async aboutToAppear() {

this.imagePixelMap = await this.getPixmapFromMedia($r('app.media.app_icon'))

}

build() {

Column() {

Image(this.imagePixelMap)

.width(200)

.height(200)

}

}

private async getPixmapFromMedia(resource: Resource) {

let unit8Array = await getContext(this)?.resourceManager?.getMediaContent({

bundleName: resource.bundleName,

moduleName: resource.moduleName,

id: resource.id

})

let imageSource = image.createImageSource(unit8Array.buffer.slice(0, unit8Array.buffer.byteLength))

let createPixelMap: image.PixelMap = await imageSource.createPixelMap({

desiredPixelFormat: image.PixelMapFormat.RGBA_8888

})

await imageSource.release()

return createPixelMap

}

}

D.

import { DrawableDescriptor } from '@ohos.arkui.drawableDescriptor'

@Entry

@Component

struct ImageExample {

private resManager = getContext().resourceManager

build() {

Row() {

Column() {

Image((this.resManager.getDrawableDescriptor($r('app.media.drawable').id) as DrawableDescriptor))

}.height('50%')

}.width('50%')

}

}

在基于Stage模型开发的应用项目代码下,都存在一个app.json5配置文件,用于配置应用的全局信息,以下app.json5配置文件错误的是

A.

{

"app": {

"bundleName": "com.example.myapplication",

"vendor": "example",

"versionCode": 1000000,

"versionName": "1.0.2",

"icon": "$media:app_icon",

"label": "app_name",

"bundleType": "app"

}

}

B.

{

"app": {

"bundleName": "com.example.myapplication",

"vendor": "example",

"versionCode": 1000000,

"versionName": "1.0.2",

"icon": "$media:app_icon",

"label": "$string:app_name",

"bundleType": "app"

}

}

C.

{

"app": {

"bundleName": "com.example.myapplication",

"vendor": "example",

"versionCode": 1000000,

"versionName": "1.0.2",

"icon": "$media:app_icon",

"label": "$string:app_name"

}

}

D.

{

"app": {

"bundleName": "com.example.myapplication",

"vendor": "example", "versionCode": 1000000,

"icon": "$media:app_icon",

"label": "$string:app_name",

"bundleType": "app"

}

}

某个应用的启动框架配置文件详细信息如下,以下说法正确的是:

{

"startupTasks": [

{

"name": "StartupTask_001",

"srcEntry": "./ets/startup/StartupTask_001.ets",

"dependencies": [

"StartupTask_002",

"StartupTask_003"

],

"runOnThread": "taskpool",

"waitOnMainThread": false

},

{

"name": "StartupTask_002",

"srcEntry": "./ets/startup/StartupTask_002.ets",

"dependencies": [

"StartupTask_004"

],

"runOnThread": "taskpool",

"waitOnMainThread": false

},

{

"name": "StartupTask_003",

"srcEntry": "./ets/startup/StartupTask_003.ets",

"runOnThread": "taskpool",

"waitOnMainThread": false

},

{

"name": "StartupTask_004",

"srcEntry": "./ets/startup/StartupTask_004.ets",

"runOnThread": "taskpool",

"waitOnMainThread": false

},

{

"name": "StartupTask_005",

"srcEntry": "./ets/startup/StartupTask_005.ets",

"runOnThread": "mainThread",

"waitOnMainThread": true

},

{

"name": "StartupTask_006",

"srcEntry": "./ets/startup/StartupTask_006.ets",

"runOnThread": "mainThread",

"waitOnMainThread": false,

"excludeFromAutoStart": true

}

],

"configEntry": "./ets/startup/StartupConfig.ets"

}

A.

StartupTask_006会在AbilityStage的onCreate前初始化完成

B.

StartupTask_005会在主线程执行

C.

StartupTask_001会在StartupTask_004之后执行;

D.

StartupTask_003会在StartupTask_004之后执行

Grid() {

ForEach(this.numbers, (day: string) => {

ForEach(this.numbers, (day: string) => {

GridItem() {

Text(day)

.fontSize(16)

.backgroundColor(0xF9CF93)

.width('100%')

.height(80)

.textAlign(TextAlign.Center)

}

}, (day: string) => day)

}, (day: string) => day)

}

.columnsTemplate('1fr '.repeat(this.columns))

.columnsGap(10)

.rowsGap(10)

.width('90%')

.scrollBar(BarState.Off)

.backgroundColor(0xFAEEE0)

.height('100%')

.cachedCount(3)

// 切换列数item位置重排动画

.animation({

duration: 300,

curve: Curve.Smooth

})

.xxxx?(

PinchGesture()

.onActionEnd((event: GestureEvent) => {

console.info('end scale:' + event.scale)

// 手指分开,减少列数以放大Item,触发阈值可以自定义,示例为2

if (event.scale > 2) {

this.columns--

} else if (event.scale < 0.6) {

this.columns++

}

// 可以根据设备屏幕宽度设定最大和最小列数,此处以最小1列最大4列为例

this.columns = Math.min(4, Math.max(1, this.columns));

AppStorage.setOrCreate('columnsCount', this.columns)

})

)

如果想让grid上的捏合手势手势生效,而不跟grid上的滚动手势形成冲突,.xxxx?手势接口应该怎么配置?

A.

parallelGesture

B.

gesture

C.

priorityGesture

D.

GesureGroup

通过如下openLink的接口启动,如下哪些配置的UIAbility不可能被拉起

import { hilog } from '@kit.PerformanceAnalysisKit';

import { UIAbility, common, OpenLinkOptions } from '@kit.AbilityKit';

import { BusinessError } from '@kit.BasicServicesKit';

export default class MyAbility extends UIAbility {

onForeground() {

let link: string = "https://www.example.com"

let openLinkOptions: OpenLinkOptions = {

appLinkingOnly: true,

parameters: {demo_key: "demo_value"}

};

try {

this.context.openLink(

link,

openLinkOptions,

(err, result) => {

hilog.error(DOMAIN, TAG, 'openLink callback error.code:' + JSON.stringify(err));

}

).then(()=>{

hilog.info(DOMAIN, TAG, 'open link success.');

}).catch((err: BusinessError)=>{

hilog.error(DOMAIN, TAG, 'open link failed, errCode ' + JSON.stringify(err.code));

})

}

catch (e) {

hilog.error(DOMAIN, TAG, 'exception occured, errCode ' + JSON.stringify(e.code));

}

}

}

A.

{

"name": "TargetAbility",

"skills": [

{

"actions":[

"ohos.want.action.viewData",

],

"entities":[

"entity.system.browsable",

],

"uris":[

{

"scheme": "https",

"host": "www.test.com",

"port": "8080",

"path": "path",

"autoVerify": ture

}

]

}

]

}

B.

{

"name": "TargetAbility",

"skills": [

{

"actions":[

"ohos.want.action.sendData",

],

"entities":[

"entity.system.browsable",

],

"uris":[

{

"scheme": "https",

"host": "www.test.com",

"port": "8080",

"path": "path",

"autoVerify": ture

}

]

}

]

}

C.

{

"name": "TargetAbility",

"skills": [

{

"actions":[

"ohos.want.action.vieData",

],

"entities":[

"entity.system.browsable",

],

"uris":[

{

"scheme": "http",

"host": "www.test.com",

"port": "8080",

"path": "path"

}

]

}

]

}

D.

{

"name": "TargetAbility",

"skills": [

{

"actions":[

"ohos.want.action.sendData",

],

"entities":[

"entity.system.browsable",

],

"uris":[

{

"scheme": "http",

"host": "www.test.com",

"port": "8080",

"path": "path",

"autoVerify": ture

}

]

}

]

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星宇工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值