Code: using (var req = new HttpRequest()) { req["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; req.Cookies = cookies; req["DNT"] = "1"; req.Referer = "http://www.hornymatches.com/join.php"; req.UserAgent = agent; req.ContentType = "application/x-www-form-urlencoded"; StringDictionary part = new StringDictionary(); part["action"] = "signup"; part["bday_day2"] = "2"; part["bday_month2"] = "4"; part["bday_year2"] = "1987"; part["f_city"] = "California, Los Angeles (90045)"; part["f_country_id"] = "0224"; part["f_self_description"] = description;//заполняется из файла part["f_title"] = title;//заполняется из файла part["f_what_for_id"] = "3"; part["f_what_is_id"] = "2"; part["f_what_want_id"] = "1"; part["f_world_id"] = "2767329"; part["step"] = "2"; string text = req.Post("http://www.hornymatches.com/join.php", part).ToString(); //отправляю пост запрос и получаю ошибку using (var writer = new StreamWriter("finish.html")) writer.Write(text); } использовал xNet библиотеку Регистрация происходит в два этапа на первом вводятся имя, мыло, возраст и капча с этим разобрался на втором, указываю город, пол, кем интересуюсь, для чего(секс, гроуп секс и т.д.), коротко о себе и подробнее о себе и вот тут то возникает ошибка и я не могу понять из-за чего она может быть, т.к. все данные отправляются, на тот адрес на который надо хотя пишет что - "Не удалось соединиться с HTTP-сервером 'www.hornymatches.comfreejoincomplete.php'." А вот более полный лог "xNet.Net.HttpException: Не удалось соединиться с HTTP-сервером 'www.hornymatches.comfreejoincomplete.php'. ---> System.Net.Sockets.SocketException: Запрошенное имя верно, но данные запрошенного типа не найдены в System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) в System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult) в xNet.Net.HttpRequest.<>c__DisplayClass4.<CreateTcpConnection>b__0(IAsyncResult ar) --- Конец трассировки внутреннего стека исключений --- в xNet.Net.HttpRequest.CreateTcpConnection(String host, Int32 port) в xNet.Net.HttpRequest.CreateConnection() в xNet.Net.HttpRequest.SendRequest(HttpMethod method, Uri address, HttpContent content, Boolean reconnection) в xNet.Net.HttpRequest.SendRequest(HttpMethod method, Uri address, HttpContent content, Boolean reconnection) в xNet.Net.HttpRequest.Raw(HttpMethod method, Uri address, StringDictionary urlParams, Object messageBody) в xNet.Net.HttpRequest.Raw(HttpMethod method, String address, StringDictionary urlParams, Object messageBody) в xNet.Net.HttpRequest.Post(String address, StringDictionary reqParams) в Reg_HornyMatches.Form1.start_page() в c:\Users\Abc\Documents\Visual Studio 2012\Projects\Reg_HornyMatches\Reg_HornyMatches\Form1.cs:строка 569" - эта строка Code: string text = req.Post("http://www.hornymatches.com/join.php", part).ToString(); Вопрос в следующем из-за чего возникает ошибка у кого какие предположения?
Ну написано же все четко, доступно и понятно: удаляется слеш, отделяющий имя хоста от URL‐пути. Попробуй передавать Uri вместо string в метод POST, или поищи где там баг и со слешем и пофикси его.
В том то вся и заморочка, что пост запрос отправляется на другой адрес, внимательнее код посмотрите Code: string text = req.Post("http://www.hornymatches.com/join.php", part).ToString();
Я прекрасно увидел с первого раза куда отправляется запрос. Прочитайте внимательней что я написал выше, можно несколько раз если с первого не понятно, там есть ответ на проблему.
хах как мне фиксить этот адрес, если я на него, ни чего не отправляю??? Я этот момент не совсем понимаю.
Возьмите исходники либы xNet, найдите метод HttpRequest.Post - посмотрите где он берет строку и как он ее разделяет и исправьте проблему. Одна из перегрузок этого метода принимает Uri в качестве аргумента с адресом, возможно там нет этой проблемы. Капиш?
нон капишь, вот смотри если на других сайтах мне удавалось регаться используя эту либу, то наверняка она рабочая, разве не так? Но я смотрел и там используются обычные классы webrequest и webresponse, так что врядле там ошибка, хотя я сперва тоже грешил на либу но она рабочая, вот и сижу не понимаю как может возникать ошибка с адресом которого нету в самом коде, что то немыслимое.
Всё удалось решить проблему Code: using (var req = new HttpRequest()) { //req.Proxy = !(this.ProxyType == "4") ? (ProxyClient)Socks5ProxyClient.Parse(SocksProxy) : (ProxyClient)Socks4ProxyClient.Parse(SocksProxy); req["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; req.Cookies = cookies; req["DNT"] = "1"; req.Referer = "http://www.hornymatches.com/join.php"; req.UserAgent = agent; req.ContentType = "application/x-www-form-urlencoded"; StringDictionary part = new StringDictionary(); part["action"] = "signup"; part["bday_day2"] = day; part["bday_month2"] = month; part["bday_year2"] = years; part["f_city"] = "California,+Los+Angeles+(90045)"; part["f_country_id"] = "0224"; part["f_self_description"] = description; part["f_title"] = title; part["f_what_for_id"] = "3"; part["f_what_is_id"] = "2"; part["f_what_want_id"] = "1"; part["f_world_id"] = "2767329"; part["step"] = "2"; try { string text = req.Post("http://www.hornymatches.com/join.php", part).ToString(); } catch { using (var req2 = new HttpRequest()) { req2["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; req2.Cookies = cookies; req2["DNT"] = "1"; req2.Referer = "http://www.hornymatches.com/join.php"; req2.UserAgent = agent; string text = req2.Get("http://www.hornymatches.com/freejoincomplete.php").ToString(); using (var writer = new StreamWriter("finish.html")) writer.Write(text); } } } Всего навсего нужно было в try отловить ошибку и в catch отправить get запорс Code: string text = req2.Get("http://www.hornymatches.com/freejoincomplete.php").ToString();
Значит не то смотрели, там НЕ используются "обычные классы webrequest и webresponse". Судя по всему сервер отдает перенаправления с не правильным Location или сама библиотека не корректно его обрабатывает.
Проблема была в том, что сервер возвращал адрес странички без слэша, а моя библиотека ожидает, что слэш обязательно будет. В версии 2.3.1 это будет исправлено.