• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15import { rcp } from "@kit.RemoteCommunicationKit";
16export type externalRequestHeaders = rcp.RequestHeaders;
17export type externalResponseHeaders = rcp.ResponseHeaders;
18export interface externalRequestHeadersInterface extends rcp.RequestHeaders {
19  customHeader1: string;
20}
21export interface externalResponseHeadersInterface extends rcp.ResponseHeaders {
22  customHeader2: string;
23}
24export const headers:string[]=[
25  'accept-ranges',
26  'allow',
27  'cache-control',
28  'content-encoding',
29  'content-range',
30  'content-type',
31  'date',
32  'etag',
33  'expires',
34  'location',
35  'retry-after',
36  'set-cookie',
37  'server',
38  'www-authenticate',
39]
40
41export default function getCookie():string{
42  return headers[7];
43}
44export const generateRange = () => 'range';
45export let localUpgrade:string = 'upgrade';
46export let localRange:string = generateRange();
47export class Header{
48  acceptLanguage = headers[6];
49  cookie = 'cookie';
50  getUpgrade(){
51    return localUpgrade;
52  }
53}
54
55export interface internalResponseHeaders<T extends object> {
56  rcpHeaders: rcp.ResponseHeaders;
57  additionalHeaders: T;
58}
59interface AdditionalHeaders {
60  customHeader: string;
61}
62type CustomResponseHeaders = internalResponseHeaders<AdditionalHeaders>;
63const cusRequestHeaders: CustomResponseHeaders = {
64  rcpHeaders: {
65    'content-range': 'json', // Error
66    server: 'bytes=0-1023' // Error
67  },
68  additionalHeaders: {
69    customHeader: 'custom value'
70  }
71};
72const basicHeaders: rcp.ResponseHeaders = {
73  "set-cookie": 'Bearer abc123',
74  'retry-after': 'application/json' // Error
75};
76basicHeaders.allow =''; // Error
77function createHeaders(cookie:string,authToken?: string): rcp.ResponseHeaders {
78  return {
79    server: undefined,
80    expires: 'application/json',
81    'accept-ranges': 'no-cache', // Error
82    'www-authenticate': 'MyApp/2.0' // Error
83  };
84}
85createHeaders(basicHeaders.date!); // Error
86function getRange(){
87  return basicHeaders?.["content-range"]; // Error
88}
89
90export type localResponseHeaders = rcp.ResponseHeaders;
91let localHeaders:localResponseHeaders = {
92  'content-encoding': 'UTF-8', // Error
93  'content-range': 'gzip, deflate', // Error
94  'location': 'en-US,en;q=0.9', // Error
95  'set-cookie': 'session_id=123456', // Error
96  'accept-ranges': 'bytes=0-1023', // Error
97  'www-authenticate': 'websocket', // Error
98  'content-type':'application/json' // Error
99}
100class RemoteTest{
101  setCookie(cookie:string){
102    cookie = 'cookie'
103  }
104  createHeaders(cookie:string,authToken?: string): rcp.ResponseHeaders {
105    return {
106      'accept-ranges':  undefined, // Error
107      'content-encoding': 'application/json', // Error
108      date: '2025', // Error
109      "cache-control": 'no',
110      allow:'web', // Error
111      'www-authenticate':'' // Error
112    };
113  }
114  constructor() {
115    createHeaders(basicHeaders.date!); // Error
116  }
117}