Bonjour,
J'appelle une page aspx via HttpWebRequest. j'utilise la méthode Post.
la page appelée existe sur 3 serveurs IIs différents. Sur le deux serveurs je ne récupère pas la valeur envoyée en post et sur le 3ème, je la récupère avec succès.
Voic mon code d'envoi:
string uriDev = "http://serveur1/ModuleOffresServices/SendQuoteRequest.ashx?CY=bonus";
string uriIntegration = "http://serveur2/ModuleOffresServices/sendquoterequest.ashx?CY=bonus";
string uriAcceptation = "https://serveur3/ModuleOffresServices/sendquoterequest.ashx?CY=bonus";
string sFluxDataEtape1Envoi = "<FLUX><EnTete><Langue>F</Langue><Caller>bonus</Caller><CallerCle>5674</CallerCle><Destinataire>1542</Destinataire><PER_Nbre>1</PER_Nbre><DateDebutContrat>01.01.2013</DateDebutContrat></EnTete><Personne><PER_Bonus_CooID>56741</PER_Bonus_CooID><PER_Nom>NomDeFamille</PER_Nom><PER_Prenom>Prénom1</PER_Prenom><PER_DateNaiss>01.01.1972</PER_DateNaiss><PER_Sexe>F</PER_Sexe><PER_Rue>Rue</PER_Rue><PER_RueCompl>RueCompl</PER_RueCompl><PER_Npa>1018</PER_Npa><PER_NpaCompl>00</PER_NpaCompl><PER_Lieu>Lausanne</PER_Lieu><PER_TelPrive>021 544 38 63</PER_TelPrive><PER_TelProf>-</PER_TelProf><PER_TelMobile>021 544 38 63</PER_TelMobile><PER_Email>akhlif@tadis.ch</PER_Email><PER_AssuranceActu>1542</PER_AssuranceActu><Variante><BAS_Franchise>1500</BAS_Franchise><BAS_Accident>Y</BAS_Accident><BAS_ModeleAssurance>BASE</BAS_ModeleAssurance></Variante></Personne></FLUX>";
result.Text = "";
string sFormName = "XMLCode";
sFluxDataEtape1Envoi = sFormName + "=" + HttpUtility.UrlEncode(sFluxDataEtape1Envoi);
result.Text = result.Text + "Tadis, Dev: + " + sendRequestMethode2(uriDev, sFluxDataEtape1Envoi) + "<br>";
result.Text = result.Text + "Tadis, Integration: + " + sendRequestMethode2(uriIntegration, sFluxDataEtape1Envoi) + "<br>";
result.Text = result.Text + "Tadis, Acceptation: + " + sendRequestMethode2(uriAcceptation, sFluxDataEtape1Envoi) + "<br>";
private string sendRequestMethode2(string uri, string data)
{
HttpWebRequest oRequest = (HttpWebRequest)HttpWebRequest.Create(uri);
oRequest.Method = "POST";
oRequest.ContentType = "application/x-www-form-urlencoded";
byte[] bytes;
bytes = System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(data);
oRequest.ContentLength = bytes.Length;
Stream newStream = oRequest.GetRequestStream();
newStream.Write(bytes, 0, bytes.Length);
newStream.Close();
WebResponse oResponse = (HttpWebResponse)oRequest.GetResponse();
Console.WriteLine("GetResponse");
Console.WriteLine(oResponse.Headers.ToString());
Stream responseStream = oResponse.GetResponseStream();
Console.WriteLine("GetResponseStream");
Console.WriteLine(oResponse.Headers.ToString());
StreamReader reader = new StreamReader(responseStream, System.Text.Encoding.GetEncoding("ISO-8859-1"));
Console.WriteLine("StreamReader");
string sCompleteRequestData = reader.ReadToEnd();
oResponse.Close();
return sCompleteRequestData;
}
et voici mon code de réception:
CLogger.WriteToLog("Start ProcessRequest");
string provenance = context.Request.QueryString["CY"];
CLogger.WriteToLog("CY: " + provenance);
CLogger.WriteToLog("XMLCode exist: " + ((bool)(context.Request.Form["XMLCode"] != null)).ToString());
string xmlCode = GetXMLContent(context, "XMLCode");
CLogger.WriteToLog("XMLCode: " + xmlCode);
Deux serveurs IIS ne trouvent pas le champ XMLCode et le 3ème le lit avec succès.
Avez vous une idée svp?
Merci d'avance
Partager