JSON Schema validation https failed without details. Fixes #127769

This commit is contained in:
Martin Aeschlimann 2021-10-08 12:03:03 +02:00
parent d7ec4b3edc
commit 7aaa2474eb
No known key found for this signature in database
GPG key ID: 2609A01E695523E3
3 changed files with 13 additions and 5 deletions

View file

@ -220,7 +220,9 @@ export function startClient(context: ExtensionContext, newLanguageClient: Langua
*/
runtime.telemetry.sendTelemetryEvent('json.schema', { schemaURL: uriPath });
}
return runtime.http.getContent(uriPath);
return runtime.http.getContent(uriPath).catch(e => {
return Promise.reject(new ResponseError(4, e.toString()));
});
} else {
return Promise.reject(new ResponseError(1, localize('schemaDownloadDisabled', 'Downloading schemas is disabled through setting \'{0}\'', SettingIds.enableSchemaDownload)));
}
@ -233,7 +235,6 @@ export function startClient(context: ExtensionContext, newLanguageClient: Langua
}
return false;
};
const handleActiveEditorChange = (activeEditor?: TextEditor) => {
if (!activeEditor) {
return;

View file

@ -64,12 +64,19 @@ function getPackageInfo(context: ExtensionContext): IPackageInfo {
function getHTTPRequestService(): RequestService {
return {
getContent(uri: string, _encoding?: string) {
getContent(uri: string, _encoding?: string): Promise<string> {
const headers = { 'Accept-Encoding': 'gzip, deflate' };
return xhr({ url: uri, followRedirects: 5, headers }).then(response => {
return response.responseText;
}, (error: XHRResponse) => {
return Promise.reject(error.responseText || getErrorStatusDescription(error.status) || error.toString());
let status = getErrorStatusDescription(error.status);
if (status && error.responseText) {
status = `${status}\n${error.responseText.substring(0, 200)}`;
}
if (!status) {
status = error.toString();
}
return Promise.reject(status);
});
}
};

View file

@ -6,7 +6,7 @@
import { Uri } from 'vscode';
export interface RequestService {
getContent(uri: string, encoding?: string): Thenable<string>;
getContent(uri: string, encoding?: string): Promise<string>;
}
export function getScheme(uri: string) {