Trying titanium web proxy with .NET 4.8 build

  • Thread starter Thread starter Kalmydius
  • Start date Start date
K

Kalmydius

Guest
Hello crowd,

We understand that using net framework is significantly slower than net core (Internet speed decreases by 10 times! · Issue #773 · justcoding121/Titanium-Web-Proxy), but is it necessary to reinstall visual studio with only net core and then deselect framework?

We have made a windows service, that works, but the testing of this titanium web proxy fails. Maybe it has to do with certificate?

Here is our code, we tested:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
using Titanium.Web.Proxy;
using Titanium.Web.Proxy.EventArguments;

namespace WebProxy1 {
public partial class MyNewService : ServiceBase {
public ProxyServer proxyServer;

public MyNewService() {
InitializeComponent();
}

protected override void OnStart(string[] args) {
proxyServer = new ProxyServer(true, true, true);

proxyServer.BeforeRequest += OnRequest;

proxyServer.Start();

WriteToFile("Service is started at " + DateTime.Now);

}

protected override void OnStop() {
proxyServer.Stop();
WriteToFile("Service is stopped at " + DateTime.Now);
}
public void WriteToFile(string Message) {
string path = "E:\\Downloads\\Logs";
if (!Directory.Exists(path)) {
Directory.CreateDirectory(path);
}
string filepath = "E:\\Downloads\\Logs\\ServiceLog_" + DateTime.Now.Date.ToShortDateString().Replace('/', '_') + ".txt";
if (!File.Exists(filepath)) {
// Create a file to write to.
using (StreamWriter sw = File.CreateText(filepath)) {
sw.WriteLine(Message);
}
} else {
using (StreamWriter sw = File.AppendText(filepath)) {
sw.WriteLine(Message);
}
}
}

public async Task OnRequest(object sender, SessionEventArgs e) {
WriteToFile(e.HttpClient.Request.Url);

// To cancel a request with a custom HTML content
// Filter URL
if (e.HttpClient.Request.Method.ToUpper() == "GET" && e.HttpClient.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>");
}

// Redirect example
if (e.HttpClient.Request.RequestUri.AbsoluteUri.Contains("wikipedia.org")) {
e.Redirect("Send Money, Pay Online or Set Up a Merchant Account - PayPal");
}
}
}
}


When program is running as a windows service, it correctly logs start time to a file. And thereafter nothing else, when we browse some web pages, where it should have logged those internet requests too.

Continue reading...
 
Back
Top