Здравствуйте, переполнение сообщества,
У меня небольшая проблема.Я написал класс, который представляет собой простой запрос get с параметрами для URL, реферера и файлов cookie, после чего он возвращает pagesrc, который является сообщением для моей функции извлечения строки, в которой есть параметр message, start и stop.
Вот класс:
class HttpMethods
{
public static string Fetch(string url, string referer, ref CookieContainer cookies)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.CookieContainer = cookies;
request.UserAgent = "" ;
request.Referer = referer;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
cookies.Add(response.Cookies);
string pageSrc;
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
pageSrc = sr.ReadToEnd();
}
return pageSrc;
}
}
Это моя основная функция:
static void Main(string[] args)
{
CookieContainer myCookies = new CookieContainer();
string myStr = HttpMethods.Fetch("localhost", "localhost", ref myCookies);
void fetchStr (string message , string start, string stop)
{
int startIndex = message.IndexOf(start) + start.Length;
int stopIndex = message.IndexOf(stop);
Console.Write( message.Substring(startIndex, stopIndex - startIndex) );
}
fetchStr(myStr, "I am a String ", " to fetch");
Console.ReadKey();
}
}
Все работает нормально, когда я получаю ТОЛЬКО открытый текст, но когда я хочу получить элемент,он возвращает мне длину не может быть меньше 0, то есть ответ, когда какая-то строка не была найдена.
это действительно странно, вот пример:
//Original Sentence : I am a string please fetch me dude.
fetchStr(myStr, "I am a ", " fetch me dude");
Это вернет: string пожалуйста
Но когда я пытаюсь получить эту часть:
//Original Sentence : name="_playerToken" value="a8276964-fdac-4d63-ae25-5752f157a21b" />
fetchStr(myStr, "name=\"_playerToken\" value=\"", "\"/>");
Это вернет, длина не может быть меньше 0.
Вот скриншот из моей визуальной студии вывода:
Вывод значений Visual Studio
У кого-то есть идея, где может быть проблема?