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 1
1
import * as React from 'react' ;
2
2
import { observer } from 'mobx-react' ;
3
3
4
- import { styled } from '../../styles' ;
5
4
import { RawHeaders } from '../../types' ;
6
5
7
6
import {
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ import { observable } from 'mobx';
4
4
5
5
import { HttpExchange , RawHeaders } from "../../types" ;
6
6
import { ObservablePromise } from '../../util/observable' ;
7
+ import { h2HeadersToH1 } from '../../util/headers' ;
7
8
8
9
import { EditableContentType , getEditableContentTypeFromViewable } from "../events/content-types" ;
9
10
import { EditableBody } from '../http/editable-body' ;
@@ -112,10 +113,15 @@ export async function buildRequestInputFromExchange(exchange: HttpExchange): Pro
112
113
const body = await exchange . request . body . decodedPromise ??
113
114
Buffer . from ( '!!! ORIGINAL REQUEST BODY COULD NOT BE DECODED !!!' ) ;
114
115
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
+
115
121
return new RequestInput ( {
116
122
method : exchange . request . method ,
117
123
url : exchange . request . url ,
118
- headers : exchange . request . rawHeaders ,
124
+ headers : headers ,
119
125
requestContentType : getEditableContentTypeFromViewable ( exchange . request . contentType ) ?? 'text' ,
120
126
rawBody : body ,
121
127
} ) ;
Original file line number Diff line number Diff line change @@ -183,6 +183,7 @@ export class SendStore {
183
183
184
184
const exchange = this . eventStore . recordSentRequest ( {
185
185
id : exchangeId ,
186
+ httpVersion : '1.1' ,
186
187
matchedRuleId : false ,
187
188
method : requestInput . method ,
188
189
url : requestInput . url ,
Original file line number Diff line number Diff line change 1
1
import * as _ from 'lodash' ;
2
2
import { Headers , RawHeaders } from '../types' ;
3
3
4
+ export {
5
+ h2HeadersToH1
6
+ } from 'mockttp/dist/util/header-utils' ;
7
+
4
8
// Based RFC7230, 3.2.6:
5
9
export const HEADER_NAME_PATTERN = '^[!#$%&\'*+\\-.^_`\\|~A-Za-z0-9]+$' ;
6
10
// 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