import { rcp } from '@kit.RemoteCommunicationKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct demo {
@State host: string = 'http://example.com/fetch';
@State httpMethod: string = "POST";
@State caPath: string = '/path/dir/';
fetch() {
// Configure security settings
const securityConfig: rcp.SecurityConfiguration = {
remoteValidation: "system",
certificate: {
content: "-----BEGIN CERTIFICATE-----",
type: "PEM",
key: this.caPath,
keyPassword: "your-password",
},
serverAuthentication: {
credential: {
username: "exampleUser",
password: "examplePassword",
},
authenticationType: "basic",
},
};
// Use the security configuration in the session creation
const session = rcp.createSession({ requestConfiguration: { security: securityConfig } });
console.info('host:' + this.host);
console.info('httpMethod:' + this.httpMethod);
session.fetch(new rcp.Request(this.host, this.httpMethod)).then((response) => {
console.info(`Response succeed: ${response}`);
}).catch((err: BusinessError) => {
console.error(`err: err code is ${err.code}, err message is ${err.message}`);
});
}
build() {
Column() {
Text('点击按钮切换域名和证书')
.fontSize(20)
.fontWeight(FontWeight.Bold)
.margin({ top: 20 })
Button("GET")
.margin({ top: 20 })
.fontColor(Color.Blue)
.onClick(() => {
this.host = 'http://example.com/get'
this.caPath = '/*'
this.fetch()
})
Button("POST")
.margin({ top: 20 })
.fontColor(Color.Blue)
.onClick(() => {
this.host = 'http://example.com/post'
this.caPath = '/*'
this.fetch()
})
}
.height('100%')
.width('100%')
}
}