HTTP POST požadavek v C# aplikaci – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

HTTP POST požadavek v C# aplikaci – .NET – Fórum – Programujte.comHTTP POST požadavek v C# aplikaci – .NET – Fórum – Programujte.com

 

klinki0
Návštěvník
19. 5. 2009   #1
-
0
-

Zdravím, skoro celý den řeším problém jak odeslat POST požadavek v C# aplikaci :( Vygooglil jsem vskutku hodně návodů, postupů a všeho, ale bohužel se mi nedaří to zprovoznit :(

Tady je kód:



string url = "http://www.seznam.cz";

HttpWebRequest request = null;
HttpWebResponse response = null;

request = (HttpWebRequest)WebRequest.Create(url);
request.AllowAutoRedirect = false;

try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (System.Net.WebException e)
{
MessageBox.Show(e.ToString());
}
if (response.StatusCode == HttpStatusCode.Found)
{
MessageBox.Show("302");
MessageBox.Show(response.StatusCode.ToString());
}
else
{
// sem bych se měl dostat (a taky dostanu :-) )
MessageBox.Show("Response status is " + response.StatusCode + ". Expected was Found");
}
StreamReader sr = new StreamReader(response.GetResponseStream());


try
{
string html = sr.ReadToEnd();
sr.Close();
}
catch (System.Net.WebException netE)
{
// TODO: Add exception handler
MessageBox.Show(netE.ToString());
}
catch (Exception e)
{
// TODO: Handle exception throw;
MessageBox.Show(e.ToString());
}


string Post = "op=" + sop + "&id=" + sid + "&rand=" + srand + "&method_free=&method_premium=&code=" + text + "&down_direct=1";
byte[] postData = Encoding.ASCII.GetBytes(Post);

try
{
request.KeepAlive = false;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
// Tady to hodí vyjímku System.InvalidOperationException:
// Tuto vlastnost nelze nastavit po spuštění zápisu
request.ContentLength = postData.Length;
Stream dataStream = request.GetRequestStream();

dataStream.Write(postData, 0, postData.Length);
dataStream.Close();
}
catch(InvalidOperationException e)
{
MessageBox.Show(e.ToString());
}

response = (HttpWebResponse)request.GetResponse();
StreamReader responseStream = new StreamReader(response.GetResponseStream());
MessageBox.Show(responseStream.ReadToEnd());


Při pokusu o změnu ContentLength to hodí vyjímku System.InvalidOperationException: Tuto vlastnost nelze nastavit po spuštění zápisu

Nahlásit jako SPAM
IP: 85.13.98.–
JardaJirava0
Stálý člen
20. 5. 2009   #2
-
0
-

Ahoj,

já jsem vždy používal jeden httpwebrequest na jeden požadavek, a řekl bych, že to je ta správná cesta. Ty se snažíš to znovupoužít, což nebude dobře a informace ve výjimce tomu jen naznačuje.

Pěkný den

Jarda Jirava

Nahlásit jako SPAM
IP: 194.213.35.–
MCAD, MCPD
http://jirava.net/blog
http://xaml.cz - Magazín moderních technologií založených na XAML
klinki0
Návštěvník
20. 5. 2009   #3
-
0
-

Aha no to je možné ale jak to je s cookies apod. ? Když bych chtěl třeba načíst stránku, pomocí regulárního výrazu najít určitý úsek (např. CAPTCHA) pak udělám dialog s obrázkem nechám uživatele opsat kód a budu chtít aby to odeslalo tu captchu (tzn. mělo by to být v rámci stejné session). Bude to fungovat s 2 různýma requestama?

Edit: Aha tak ono to skutečně funguje :-) super..

Nahlásit jako SPAM
IP: 195.113.101.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 119 hostů

Podobná vlákna

Http SendPost požadavek — založil Mutagen

HTTP POST — založil Hirijaka

Libcurl http post body — založil Michal

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý