File tree Expand file tree Collapse file tree 4 files changed +12
-2
lines changed Expand file tree Collapse file tree 4 files changed +12
-2
lines changed Original file line number Diff line number Diff line change 11import * as React from 'react' ;
22import { observer } from 'mobx-react' ;
33
4- import { styled } from '../../styles' ;
54import { RawHeaders } from '../../types' ;
65
76import {
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ import { observable } from 'mobx';
44
55import { HttpExchange , RawHeaders } from "../../types" ;
66import { ObservablePromise } from '../../util/observable' ;
7+ import { h2HeadersToH1 } from '../../util/headers' ;
78
89import { EditableContentType , getEditableContentTypeFromViewable } from "../events/content-types" ;
910import { EditableBody } from '../http/editable-body' ;
@@ -112,10 +113,15 @@ export async function buildRequestInputFromExchange(exchange: HttpExchange): Pro
112113 const body = await exchange . request . body . decodedPromise ??
113114 Buffer . from ( '!!! ORIGINAL REQUEST BODY COULD NOT BE DECODED !!!' ) ;
114115
116+ // For now, all sent requests are HTTP/1, so we need to make sure we convert:
117+ const headers = exchange . httpVersion === 2
118+ ? h2HeadersToH1 ( exchange . request . rawHeaders )
119+ : exchange . request . rawHeaders ;
120+
115121 return new RequestInput ( {
116122 method : exchange . request . method ,
117123 url : exchange . request . url ,
118- headers : exchange . request . rawHeaders ,
124+ headers : headers ,
119125 requestContentType : getEditableContentTypeFromViewable ( exchange . request . contentType ) ?? 'text' ,
120126 rawBody : body ,
121127 } ) ;
Original file line number Diff line number Diff line change @@ -183,6 +183,7 @@ export class SendStore {
183183
184184 const exchange = this . eventStore . recordSentRequest ( {
185185 id : exchangeId ,
186+ httpVersion : '1.1' ,
186187 matchedRuleId : false ,
187188 method : requestInput . method ,
188189 url : requestInput . url ,
Original file line number Diff line number Diff line change 11import * as _ from 'lodash' ;
22import { Headers , RawHeaders } from '../types' ;
33
4+ export {
5+ h2HeadersToH1
6+ } from 'mockttp/dist/util/header-utils' ;
7+
48// Based RFC7230, 3.2.6:
59export const HEADER_NAME_PATTERN = '^[!#$%&\'*+\\-.^_`\\|~A-Za-z0-9]+$' ;
610 // The \\| is required here because in 'v' flag regexes (used in HTML patterns by default) the |
You can’t perform that action at this time.
0 commit comments