Variable enviando POST a un web service
Publicado por Luis vasquez (3 intervenciones) el 20/03/2018 18:34:28
Buenas tardes, espero puedan darme una mano con lo siguiente, ya que no manejo C# para nada.
Existe un web service de un proveedor (externo) de servicios de hotelería. No disponemos de la documentación del mismo. Solo dispongo de un código en C# como referencia, pues el objetivo es crear lo mismo usando PHP.
No quiero (ni puedo) cambiar dicho código (ni siquiera ejecutarlo). Sólo lo estoy usando como referencia debido a que no tengo la documentación del web service del proveedor.
La lógica me dice que si voy a enviar un POST al url del web service necesito saber el nombre de la (o las) variable(s) que el web service entienda. ¿Correcto? Igual que cuando envías un formulario, la página que lo procesa debe recibir vía POST los datos en una variables específicas.
Pues, tengo este código en C# y no veo como se denomina la variable que se envía por POST:
Como pueden ver, la varible strXML contiene un xml que debe ser enviado por POST al web service.
Alli se declara bytes que guarda una especie de conversión de strXML, sin embargo, al enviar el post se escribe simplemente pero en ninguna parte se hace mención al nombre de la variable.
Espero que puedan entenderme.
Saludos y de antemano muchas gracias,
Luis
Existe un web service de un proveedor (externo) de servicios de hotelería. No disponemos de la documentación del mismo. Solo dispongo de un código en C# como referencia, pues el objetivo es crear lo mismo usando PHP.
No quiero (ni puedo) cambiar dicho código (ni siquiera ejecutarlo). Sólo lo estoy usando como referencia debido a que no tengo la documentación del web service del proveedor.
La lógica me dice que si voy a enviar un POST al url del web service necesito saber el nombre de la (o las) variable(s) que el web service entienda. ¿Correcto? Igual que cuando envías un formulario, la página que lo procesa debe recibir vía POST los datos en una variables específicas.
Pues, tengo este código en C# y no veo como se denomina la variable que se envía por POST:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
string v_strURL = Helper.URL_DETAIL_HOTEL.ToString(); // Url del web service
strXML = "<?xml version='1.0' encoding='utf-8'?>";
strXML += "<GetHotelDetailRequest user='raymundo' password='123456'>";
strXML += "<Language>es</Language>";
strXML += "<DestinationCode>CUN</DestinationCode>";
strXML += "<Broker>Hotelbeds</Broker>";
strXML += "<HotelCode>4894</HotelCode>";
strXML += "<HotelName>CasaMagna+Marriott+Cancun+Resort</HotelName>";
strXML += "<AvailToken>1HdC5yhCq7GbGe2NtxA8Zwiy</AvailToken>";
strXML += "</GetHotelDetailRequest>";
XmlDocument XMLResponse = null;
XmlDocument xmldoc = new XmlDocument();
//Declare an HTTP-specific implementation of the WebRequest class.
HttpWebRequest objHttpWebRequest;
//Declare an HTTP-specific implementation of the WebResponse class
HttpWebResponse objHttpWebResponse = null;
//Declare a generic view of a sequence of bytes
Stream objRequestStream = null;
Stream objResponseStream = null;
DataSet datasetD = new DataSet();
DataTable tblHotelData = new DataTable();
//Declare XMLReader
XmlTextReader objXMLReader;
objHttpWebRequest = (HttpWebRequest)WebRequest.Create(v_strURL);
try {
//Set HttpWebRequest properties
byte[] bytes;
bytes = System.Text.Encoding.UTF8.GetBytes(strXML);
objHttpWebRequest.Method = "POST";
objHttpWebRequest.ContentLength = bytes.Length;
objHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
//Get Stream object
objRequestStream = objHttpWebRequest.GetRequestStream();
//Writes a sequence of bytes to the current stream
objRequestStream.Write(bytes, 0, bytes.Length);
//Close stream
objRequestStream.Close();
//---------- End HttpRequest
//Sends the HttpWebRequest, and waits for a response.
objHttpWebResponse = (HttpWebResponse)objHttpWebRequest.GetResponse();
}
Como pueden ver, la varible strXML contiene un xml que debe ser enviado por POST al web service.
Alli se declara bytes que guarda una especie de conversión de strXML, sin embargo, al enviar el post se escribe simplemente
1
objRequestStream.Write(bytes, 0, bytes.Length);
Espero que puedan entenderme.
Saludos y de antemano muchas gracias,
Luis
Valora esta pregunta


0