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}