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 */ 15 16import { rcp } from '@kit.RemoteCommunicationKit'; 17import { externalRequestHeaders,externalRequestHeadersInterface } from './quoted_hyphen_props_deprecated_sdk2'; 18import { externalResponseHeaders,externalResponseHeadersInterface } from './quoted_hyphen_props_deprecated_sdk2'; 19export interface internalRequestHeaders<T extends object> { 20 rcpHeaders: rcp.RequestHeaders; 21 additionalHeaders: T; 22} 23interface AdditionalHeaders { 24 customHeader: string; 25} 26type CustomRequestHeaders = internalRequestHeaders<AdditionalHeaders>; 27const cusRequestHeaders: CustomRequestHeaders = { 28 rcpHeaders: { 29 'content-type': 'application/json', // Error 30 range: 'bytes=0-1023' // Error 31 }, 32 additionalHeaders: { 33 customHeader: 'custom value' 34 } 35}; 36const basicHeaders: rcp.RequestHeaders = { 37 'authorization': 'Bearer abc123', // Error 38 'content-type': 'application/json' // Error 39}; 40basicHeaders.cookie =''; // Error 41function createHeaders(cookie:string,authToken?: string): rcp.RequestHeaders { 42 return { 43 'authorization': authToken ? `Bearer ${authToken}` : undefined, // Error 44 'accept': 'application/json', // Error 45 'cache-control': 'no-cache', // Error 46 'user-agent': 'MyApp/2.0' // Error 47 }; 48} 49createHeaders(basicHeaders.cookie); // Error 50function getRange(){ 51 return basicHeaders.range; // Error 52} 53 54export type localRequestHeaders = rcp.RequestHeaders; 55let localHeaders:localRequestHeaders = { 56 'accept-charset': 'UTF-8', // Error 57 'accept-encoding': 'gzip, deflate', // Error 58 'accept-language': 'en-US,en;q=0.9', // Error 59 'cookie': 'session_id=123456', // Error 60 'range': 'bytes=0-1023', // Error 61 'upgrade': 'websocket', // Error 62 'content-type':'application/json' // Error 63} 64let externalHeaders:externalRequestHeaders = { 65 cookie: 'session_id=123456', // Error 66 range: 'bytes=0-1023', // Error 67 'content-type':'application/json' // Error 68} 69const setRequestHeaders1 = (headers: externalRequestHeaders) => { 70 headers.authorization =''; // Error 71} 72class RemoteTest{ 73 setCookie(cookie:string){ 74 cookie = 'cookie' 75 } 76 createHeaders(cookie:string,authToken?: string): rcp.RequestHeaders { 77 return { 78 authorization: authToken ? `Bearer ${authToken}` : undefined, // Error 79 accept: 'application/json', // Error 80 "cache-control": 'no-cache', 81 "user-agent": 'MyApp/2.0', 82 upgrade:'web', // Error 83 range:'' // Error 84 }; 85 } 86 constructor() { 87 createHeaders(basicHeaders.authorization!); // Error 88 } 89} 90const exRequestHeadersInterface: externalRequestHeadersInterface = { 91 authorization: 'Bearer token', //Error 92 customHeader1: 'value1' 93}; 94function processHeaders(headers: externalRequestHeadersInterface) { 95 console.log(headers.authorization); //Error 96 console.log(headers.customHeader1); 97} 98function createExHeaders(): externalRequestHeadersInterface { 99 return { 100 authorization: 'Bearer token', //Error 101 customHeader1: 'value1' 102 }; 103} 104typeof exRequestHeadersInterface.authorization; //Error 105console.log('accept='+exRequestHeadersInterface.accept) //Error 106function printHeaders<T extends externalRequestHeadersInterface>(exheaders: externalRequestHeadersInterface) { 107 console.log(exheaders.authorization); //Error 108} 109const headersArray: externalRequestHeadersInterface[] = [ 110 { 111 authorization: 'application/json', //Error 112 customHeader1: 'header1Value1' 113 }, 114 { 115 'cookie': 'sss', //Error 116 customHeader1: 'header1Value2' 117 } 118]; 119interface RequestConfig { 120 headers: externalRequestHeadersInterface; 121 url: string; 122 method: 'GET' | 'POST'; 123} 124 125const config: RequestConfig = { 126 headers: { 127 'authorization': 'application/json', //Error 128 customHeader1: 'configHeaderValue' 129 }, 130 url: 'https://example.com/api', 131 method: 'GET' 132}; 133export const headers:string[]=[ 134 'authorization', 135 'accept', 136 'cache-control', 137 'user-agent', 138 'accept-charset', 139 'accept-encoding', 140 'accept-language', 141 'cookie', 142 'range', 143 'upgrade', 144 'content-type' 145] 146 147//ResponseHeader part 148let externalResponseHeader:externalResponseHeaders = { 149 'accept-ranges':'', // Error 150 'allow': '', // Error 151 'cache-control': '', // Error 152 'content-encoding': '' // Error 153} 154const setResponseHeaders = (headers: externalResponseHeaders) => { 155 headers.expires =''; // Error 156} 157 158const exResponseHeadersInterface: externalResponseHeadersInterface = { 159 "www-authenticate": 'Bearer token', 160 customHeader2: 'value1' 161}; 162function processResponseHeaders(responseHeaders: externalResponseHeadersInterface) { 163 console.log(responseHeaders.date); // Error 164 console.log(responseHeaders.customHeader2); 165} 166function createExResponseHeaders(): externalResponseHeadersInterface { 167 return { 168 date: '2025', //Error 169 customHeader2: 'value1' 170 }; 171} 172typeof exResponseHeadersInterface.authorization; //Error 173console.log('accept='+exResponseHeadersInterface.accept) //Error 174function printResponseHeaders<T extends externalResponseHeadersInterface>(exHeaders: externalResponseHeadersInterface) { 175 console.log(exHeaders.etag); //Error 176} 177const responseHeadersArray: externalResponseHeadersInterface[] = [ 178 { 179 "cache-control": 'application/json', 180 customHeader2: 'header1Value1' 181 }, 182 { 183 'server': 'sss', //Error 184 customHeader2: 'header1Value2' 185 } 186]; 187interface ResponseConfig { 188 headers: externalResponseHeadersInterface; 189 url: string; 190 method: 'GET' | 'POST'; 191} 192 193const config2: ResponseConfig = { 194 headers: { 195 'content-encoding': 'application/json', //Error 196 customHeader2: 'configHeaderValue' 197 }, 198 url: 'https://example.com/api', 199 method: 'GET' 200};