laurentCsharp
Messages postés2Date d'inscriptionjeudi 13 août 2009StatutMembreDernière intervention14 août 2009
-
13 août 2009 à 19:11
laurentCsharp
Messages postés2Date d'inscriptionjeudi 13 août 2009StatutMembreDernière intervention14 août 2009
-
14 août 2009 à 00:50
Bonjour,
Voici un code qui marche très bien et qui permet de recuperer une page web protegée par htaccess.
Uri uri;
try
{
uri = new Uri("http://www.exemple.com/admin/mypage.php");
}
catch
{
return;
}
WebRequest request;
try
{
request = WebRequest.Create(uri);
request.Credentials = new NetworkCredential("htaccessLogin", "htaccessPass");
}
catch
{
return;
}
WebResponse response;
try
{
response = request.GetResponse();
}
catch
{
return;
}
StreamReader sr = null;
string res = "";
try
{
sr = new StreamReader(response.GetResponseStream());
res = sr.ReadToEnd();
}
catch
{
return;
}
finally
{
if (sr != null)
sr.Close();
}
Voici le même code qui marche très bien egalement et qui permet d'envoyer des variable en post à une page PHP pas protégée par htaccess.
Uri uri;
try
{
uri = new Uri("http://www.exemple.com/mypage.php");
}
catch
{
return;
}
WebRequest request;
try
{
request = WebRequest.Create(uri);
request.Credentials = new NetworkCredential("htaccessLogin", "htaccessPass");
byte[] postDataBytes = System.Text.Encoding.ASCII.GetBytes("param1=value1& param2=value2");
// Set values for the request back
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postDataBytes.Length;
System.IO.Stream reqStream = request.GetRequestStream();
reqStream.Write(postDataBytes, 0, postDataBytes.Length);
reqStream.Close();
}
catch
{
return;
}
WebResponse response;
try
{
response = request.GetResponse();
}
catch
{
return;
}
StreamReader sr = null;
string res = "";
try
{
sr = new StreamReader(response.GetResponseStream());
res = sr.ReadToEnd();
}
catch
{
return;
}
finally
{
if (sr != null)
sr.Close();
}
Maintenant, j'aimerais comprendre pourquoi le code suivant ne marche pas : Envoyer une variable post à une page proteger par htaccess !
Uri uri;
try
{
uri = new Uri("http://www.exemple.com/admin/mypage.php");
}
catch
{
return;
}
WebRequest request;
try
{
request = WebRequest.Create(uri);
byte[] postDataBytes = System.Text.Encoding.ASCII.GetBytes("param1=value1& param2=value2");
// Set values for the request back
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postDataBytes.Length;
System.IO.Stream reqStream = request.GetRequestStream();
reqStream.Write(postDataBytes, 0, postDataBytes.Length);
reqStream.Close();
}
catch
{
return;
}
WebResponse response;
try
{
response = request.GetResponse();
}
catch
{
return;
}
StreamReader sr = null;
string res = "";
try
{
sr = new StreamReader(response.GetResponseStream());
res = sr.ReadToEnd();
}
catch
{
return;
}
finally
{
if (sr != null)
sr.Close();
}
laurentCsharp
Messages postés2Date d'inscriptionjeudi 13 août 2009StatutMembreDernière intervention14 août 2009 14 août 2009 à 00:50
En effet, il faut intervertirez la portion de code 2 et la portion de code 3... Erreur de copier coller. Excusez moi.
Malheureusement ton lien n'apporte rien de nouveau à l'éclaircissement de se problème.
quand au try qui entour la création d'une variable, dans les fait, elle sert. Il suffit d'atteindre la limite en terme de ressource mémoire pour s'en apercevoir :)
Originellement, le code est encapsulé dans une méthode de type void. Le return à donc du sens puisqu'il sert à sortir de cette fonction proprement en passant par les finally...
Enfin bref, la n'est pas la question. L'objet de mon message n'est pas d'apprendre les rudiments de la maitrise du langage mais bien de comprendre comment utiliser le framework pour se cas précis.
Il n'y a pas d'exception envoyer à aucun moment pour l'exectution de ces code.
Exécution des différentes portions :
1) Cas avec le htaccess : La page est recuperer sans probleme
2) Cas du post sans htaccess : La page web est recuper sans probleme et les variable sont reçu côté server
3) Cas 1) et 2) post et htaccess en même temps => la page web est recuperer sans probleme sauf que 9 fois sur 10, les variables ne sont pas reçu côté server.
C'est un server web classique de chez ovh qui heberge une page php classic qui affiche juste ses variables post justement pour ce test.
J'ai lu sur le net que c'était un probleme genre bug du framework mais j'y crois pas trop car je ne le trouve pas dans la liste des bug répertorier par microsoft.
C'est un framework 3.
Merci d'avance pour ceux qui prendrons la peine d'examiner se problème.