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
4b830b57
Commit
4b830b57
authored
Feb 24, 2016
by
justcoding121
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #42 from justcoding121/master
Merge master to release
parents
1b650f08
637707ca
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
31 deletions
+12
-31
README.md
README.md
+12
-31
No files found.
README.md
View file @
4b830b57
...
...
@@ -22,7 +22,7 @@ Refer the HTTP Proxy Server library in your project, look up Test project to lea
Install by nuget:
Install-Package Titanium.Web.Proxy
-Pre
Install-Package Titanium.Web.Proxy
After installing nuget package mark following files to be copied to app directory
...
...
@@ -37,43 +37,25 @@ Setup HTTP proxy:
ProxyServer
.
BeforeRequest
+=
OnRequest
;
ProxyServer
.
BeforeResponse
+=
OnResponse
;
//Exclude Https addresses you don't want to proxy
//Usefull for clients that use certificate pinning
//for example dropbox.com
var
explicitEndPoint
=
new
ExplicitProxyEndPoint
(
IPAddress
.
Any
,
8000
,
true
){
//Exclude Https addresses you don't want to proxy/cannot be proxied
//for example exclude dropbox client which use certificate pinning
ExcludedHttpsHostNameRegex
=
new
List
<
string
>()
{
"dropbox.com"
}
};
//A
n explicit endpoint is where the client knows about the existance of a
proxy
//So client
sends
request in a proxy friendly manner
//A
dd an explicit endpoint where the client is aware of the
proxy
//So client
would send
request in a proxy friendly manner
ProxyServer
.
AddEndPoint
(
explicitEndPoint
);
ProxyServer
.
Start
();
//Transparent endpoint is usefull for reverse proxying (client is not aware of the existance of proxy)
//A transparent endpoint usually requires a network router port forwarding HTTP(S) packets to this endpoint
//Currently do not support Server Name Indication (It is not currently supported by SslStream class)
//That means that the transparent endpoint will always provide the same Generic Certificate to all HTTPS requests
//In this example only google.com will work for HTTPS requests
//Other sites will receive a certificate mismatch warning on browser
//Please read about it before asking questions!
var
transparentEndPoint
=
new
TransparentProxyEndPoint
(
IPAddress
.
Any
,
8001
,
true
)
{
GenericCertificateName
=
"google.com"
};
ProxyServer
.
AddEndPoint
(
transparentEndPoint
);
//Only explicit proxies can be set as a system proxy!
ProxyServer
.
SetAsSystemHttpProxy
(
explicitEndPoint
);
ProxyServer
.
SetAsSystemHttpsProxy
(
explicitEndPoint
);
foreach
(
var
endPoint
in
ProxyServer
.
ProxyEndPoints
)
Console
.
WriteLine
(
"Listening on '{0}' endpoint at Ip {1} and port: {2} "
,
endPoint
.
GetType
().
Name
,
endPoint
.
IpAddress
,
endPoint
.
Port
);
//You can also add/remove end points after proxy has been started
ProxyServer
.
RemoveEndPoint
(
transparentEndPoint
);
//Only explicit proxies can be set as system proxy!
ProxyServer
.
SetAsSystemHttpProxy
(
explicitEndPoint
);
ProxyServer
.
SetAsSystemHttpsProxy
(
explicitEndPoint
);
//wait here (You can use something else as a wait function, I am using this as a demo)
Console
.
Read
();
...
...
@@ -82,7 +64,6 @@ Setup HTTP proxy:
ProxyServer
.
BeforeResponse
-=
OnResponse
;
ProxyServer
.
Stop
();
```
Sample request and response event handlers
...
...
@@ -144,10 +125,10 @@ Sample request and response event handlers
}
}
```
Future
updates
Future
roadmap
============
*
Add callbacks for client/server certificate validation/selection
*
Support mutual authentication
*
Add
Server Name Indication (SNI) for transparent endpoints
*
Support
Server Name Indication (SNI) for transparent endpoints
*
Support HTTP 2.0
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