HTTP GET requests to API
Why are there Console.WriteLine calls? Use a logging library instead of binding this to a specific usage.



Also, returning string.Empty; instead of throwing an exception seems a bit of a bad idea. You wouldn't know there's an issue unless you'd look at your logs.



Properties should be PascalCase: localhostNearest, etc.



Why bother with this in the constructor?

localhostNearest = string.Empty;


Why can't it be null?



Do not concatenate when working with paths:

processLocation = installationFolder + "\\osrm-routed.exe",
workingDirectory = workingFolder + @"data\"


Instead, use Path.Combine().



GenerateWebRequest() does more than what its name implies.



What is conn? Use descriptive names for variables, parameters, properties, etc.



There is a lot of repetition here:

localhostNearest = "http://localhost:5000/nearest/v1/driving/",
localhostRoute = "http://localhost:5000/route/v1/driving/",
localhostTrip = "http://localhost:5000/trip/v1/driving/",


If all URLs follow that pattern, why not work with a "template" -- e.g. $"http://localhost:5000/{type}/{version}/driving/" -- and use string interpolation or String.Format()?

Also, why are these hardcoded in your code? Shouldn't these URLs come from a .config file?