Skip to content
This repository was archived by the owner on Jul 9, 2023. It is now read-only.

readme #54

Merged
merged 3 commits into from
Mar 21, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 25 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,11 @@ Sample request and response event handlers

```csharp

//Test On Request, intercept requests
//Test On Request, intecept requests
//Read browser URL send back to proxy by the injection script in OnResponse event
public void OnRequest(object sender, SessionEventArgs e)
{
Console.WriteLine(e.ProxySession.Request.RequestUrl);
Console.WriteLine(e.ProxySession.Request.Url);

//read request headers
var requestHeaders = e.ProxySession.Request.RequestHeaders;
Expand All @@ -91,38 +92,38 @@ Sample request and response event handlers
//To cancel a request with a custom HTML content
//Filter URL

if (e.ProxySession.Request.RequestUrl.Contains("google.com"))
if (e.ProxySession.Request.RequestUri.AbsoluteUri.Contains("google.com"))
{
e.Ok("<!DOCTYPE html><html><body><h1>Website Blocked</h1><p>Blocked by titanium web proxy.</p></body></html>");
e.Ok("<!DOCTYPE html>"+
"<html><body><h1>"+
"Website Blocked"+
"</h1>"+
"<p>Blocked by titanium web proxy.</p>"+
"</body>"+
"</html>");
}
}

public void OnResponse(object sender, SessionEventArgs e)
{
////read response headers

//Test script injection
//Insert script to read the Browser URL and send it back to proxy
public void OnResponse(object sender, SessionEventArgs e)
{

//read response headers
var responseHeaders = e.ProxySession.Response.ResponseHeaders;


if (e.ResponseStatusCode == "200")
if (e.RequestMethod == "GET" || e.RequestMethod == "POST")
{
if (e.ResponseContentType.Trim().ToLower().Contains("text/html"))
if (e.ProxySession.Response.ResponseStatusCode == "200")
{
//Get/Set response body bytes
byte[] responseBodyBytes = e.GetResponseBody();
e.SetResponseBody(responseBodyBytes);

//Get response body as string
string responseBody = e.GetResponseBodyAsString();

//Modify e.ServerResponse
Regex rex = new Regex("</body>", RegexOptions.RightToLeft | RegexOptions.IgnoreCase | RegexOptions.Multiline);
string modified = rex.Replace(responseBody, "<script type =\"text/javascript\">alert('Response was modified by this script!');</script></body>", 1);

//Set modifed response Html Body
e.SetResponseBodyString(modified);
if (e.ProxySession.Response.ContentType.Trim().ToLower().Contains("text/html"))
{
string body = e.GetResponseBodyAsString();
}
}
}
}
}
```
Future roadmap
============
Expand Down