Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
T
Titanium-Web-Proxy
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Titanium-Web-Proxy
Commits
ec6a8de6
Commit
ec6a8de6
authored
Oct 16, 2019
by
Honfika
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Headerbulder improvement
parent
6b2348db
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
18 additions
and
12 deletions
+18
-12
HttpWriter.cs
src/Titanium.Web.Proxy/Helpers/HttpWriter.cs
+5
-4
HeaderBuilder.cs
src/Titanium.Web.Proxy/Http/HeaderBuilder.cs
+10
-3
HttpWebClient.cs
src/Titanium.Web.Proxy/Http/HttpWebClient.cs
+1
-3
Request.cs
src/Titanium.Web.Proxy/Http/Request.cs
+1
-1
Response.cs
src/Titanium.Web.Proxy/Http/Response.cs
+1
-1
No files found.
src/Titanium.Web.Proxy/Helpers/HttpWriter.cs
View file @
ec6a8de6
...
@@ -87,12 +87,13 @@ namespace Titanium.Web.Proxy.Helpers
...
@@ -87,12 +87,13 @@ namespace Titanium.Web.Proxy.Helpers
/// <summary>
/// <summary>
/// Write the headers to client
/// Write the headers to client
/// </summary>
/// </summary>
/// <param name="header"></param>
/// <param name="header
Builder
"></param>
/// <param name="cancellationToken"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
/// <returns></returns>
internal
async
Task
WriteHeadersAsync
(
HeaderBuilder
header
,
CancellationToken
cancellationToken
=
default
)
internal
async
Task
WriteHeadersAsync
(
HeaderBuilder
header
Builder
,
CancellationToken
cancellationToken
=
default
)
{
{
await
WriteAsync
(
header
.
GetBytes
(),
true
,
cancellationToken
);
var
buffer
=
headerBuilder
.
GetBuffer
();
await
WriteAsync
(
buffer
.
Array
,
buffer
.
Offset
,
buffer
.
Count
,
true
,
cancellationToken
);
}
}
/// <summary>
/// <summary>
...
@@ -279,7 +280,7 @@ namespace Titanium.Web.Proxy.Helpers
...
@@ -279,7 +280,7 @@ namespace Titanium.Web.Proxy.Helpers
{
{
var
body
=
requestResponse
.
CompressBodyAndUpdateContentLength
();
var
body
=
requestResponse
.
CompressBodyAndUpdateContentLength
();
headerBuilder
.
WriteHeaders
(
requestResponse
.
Headers
);
headerBuilder
.
WriteHeaders
(
requestResponse
.
Headers
);
await
Write
Async
(
headerBuilder
.
GetBytes
(),
true
,
cancellationToken
);
await
Write
HeadersAsync
(
headerBuilder
,
cancellationToken
);
if
(
body
!=
null
)
if
(
body
!=
null
)
{
{
...
...
src/Titanium.Web.Proxy/Http/HeaderBuilder.cs
View file @
ec6a8de6
...
@@ -10,7 +10,7 @@ namespace Titanium.Web.Proxy.Http
...
@@ -10,7 +10,7 @@ namespace Titanium.Web.Proxy.Http
{
{
internal
class
HeaderBuilder
internal
class
HeaderBuilder
{
{
private
MemoryStream
stream
=
new
MemoryStream
();
private
readonly
MemoryStream
stream
=
new
MemoryStream
();
public
void
WriteRequestLine
(
string
httpMethod
,
string
httpUrl
,
Version
version
)
public
void
WriteRequestLine
(
string
httpMethod
,
string
httpUrl
,
Version
version
)
{
{
...
@@ -83,9 +83,16 @@ namespace Titanium.Web.Proxy.Http
...
@@ -83,9 +83,16 @@ namespace Titanium.Web.Proxy.Http
#endif
#endif
}
}
public
byte
[]
GetBytes
()
public
ArraySegment
<
byte
>
GetBuffer
()
{
{
return
stream
.
ToArray
();
stream
.
TryGetBuffer
(
out
var
buffer
);
return
buffer
;
}
public
string
GetString
(
Encoding
encoding
)
{
stream
.
TryGetBuffer
(
out
var
buffer
);
return
encoding
.
GetString
(
buffer
.
Array
,
buffer
.
Offset
,
buffer
.
Count
);
}
}
}
}
}
}
src/Titanium.Web.Proxy/Http/HttpWebClient.cs
View file @
ec6a8de6
...
@@ -147,9 +147,7 @@ namespace Titanium.Web.Proxy.Http
...
@@ -147,9 +147,7 @@ namespace Titanium.Web.Proxy.Http
headerBuilder
.
WriteLine
();
headerBuilder
.
WriteLine
();
var
data
=
headerBuilder
.
GetBytes
();
await
writer
.
WriteHeadersAsync
(
headerBuilder
,
cancellationToken
);
await
writer
.
WriteAsync
(
data
,
0
,
data
.
Length
,
cancellationToken
);
if
(
enable100ContinueBehaviour
&&
Request
.
ExpectContinue
)
if
(
enable100ContinueBehaviour
&&
Request
.
ExpectContinue
)
{
{
...
...
src/Titanium.Web.Proxy/Http/Request.cs
View file @
ec6a8de6
...
@@ -157,7 +157,7 @@ namespace Titanium.Web.Proxy.Http
...
@@ -157,7 +157,7 @@ namespace Titanium.Web.Proxy.Http
var
headerBuilder
=
new
HeaderBuilder
();
var
headerBuilder
=
new
HeaderBuilder
();
headerBuilder
.
WriteRequestLine
(
Method
,
RequestUriString
,
HttpVersion
);
headerBuilder
.
WriteRequestLine
(
Method
,
RequestUriString
,
HttpVersion
);
headerBuilder
.
WriteHeaders
(
Headers
);
headerBuilder
.
WriteHeaders
(
Headers
);
return
HttpHelper
.
HeaderEncoding
.
GetString
(
headerBuilder
.
GetBytes
()
);
return
headerBuilder
.
GetString
(
HttpHelper
.
HeaderEncoding
);
}
}
}
}
...
...
src/Titanium.Web.Proxy/Http/Response.cs
View file @
ec6a8de6
...
@@ -102,7 +102,7 @@ namespace Titanium.Web.Proxy.Http
...
@@ -102,7 +102,7 @@ namespace Titanium.Web.Proxy.Http
var
headerBuilder
=
new
HeaderBuilder
();
var
headerBuilder
=
new
HeaderBuilder
();
headerBuilder
.
WriteResponseLine
(
HttpVersion
,
StatusCode
,
StatusDescription
);
headerBuilder
.
WriteResponseLine
(
HttpVersion
,
StatusCode
,
StatusDescription
);
headerBuilder
.
WriteHeaders
(
Headers
);
headerBuilder
.
WriteHeaders
(
Headers
);
return
HttpHelper
.
HeaderEncoding
.
GetString
(
headerBuilder
.
GetBytes
()
);
return
headerBuilder
.
GetString
(
HttpHelper
.
HeaderEncoding
);
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment