Относительный путь к файлу с объектом HttpWebRequest - PullRequest
0 голосов
/ 03 февраля 2009

Я пытаюсь создать юнит-тесты, которые могут быть использованы моей командой разработчиков, поэтому мне нужно, чтобы все пути в проекте были относительными.

Где это доставляет мне неприятности, так это с классом HttpWebRequest. Я хочу, чтобы он обслуживал статические тестовые данные из файла в локальной файловой системе.

Я бы хотел сделать что-то вроде этого:

file:///./TestData/test.html

Но это просто создает C: \ TestData \ test.html и исключение DirectoryNotFoundException.

Код для запроса HttpWebRequest выглядит следующим образом:

var request = HttpWebRequest.Create(uri);
var response = request.GetResponse();
var responseStream = new StreamReader(response.GetResponseStream());
return responseStream.ReadToEnd();

Как мне убедить C # разрешить относительный путь без нарушения синтаксиса Uri?

привет Даниил

Ответы [ 2 ]

1 голос
/ 03 февраля 2009

Имеет ли файл, который вы пытаетесь установить на сервере, относительный путь по сравнению с какими-либо сборками в вашем проекте? Если это так, вы можете создать не относительный URL-адрес на основе пути к одной из сборок и вернуть его вызывающей стороне.

Например:

var basePath = Path.GetDirectoryName(typeof(MyType).Assembly.Location);
var fullPath = Path.Combine(basePath, @"TestData\test.html");
return new Uri(fullPath);
0 голосов
/ 03 февраля 2009

Зачем вам веб-запрос, если он находится в файловой системе? Вы можете просто открыть его с помощью File.ReadAllText (путь)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...