Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Error al hacer post con c++ builder (https://www.clubdelphi.com/foros/showthread.php?t=85642)

JM1985 11-04-2014 17:07:46

Error al hacer post con c++ builder
 
Hola que tal buen día..
Tengo unos problemas al hacer un timbrado con c++ builder y quisiera ver si me podrían orientar para resolverlo.

Al momento de hacer un post. con el http.

les enseño el código.
parametros->Add("us=" + InfoMain->usuarioCFDI);
parametros->Add("cfdi=" + cfdi);
// Almacenando la respuesta del post.
archivoTemporal->Text = http->Post(InfoMain->wsTimbradoPAC, parametros);

Les comento mi primer problema que no eh podido resolver.
Resulta que si envío el post por la url con los carácteres ", & me marca un error 500.
Ahora bien si codifico por UrlEncode (Por cierto me marca error igual al momento de utilizar la función nativa de c++por la cual tuve que investigar por aquí como hacer la función)
me sigue marcando el mismo error o bien si se codifica hexadecimal %26 cuando pasa por la url como que lo vuelve a codificar y cuando lo decodifican del otro lado me dicen que dos veces codifique la información.


No se si hay que setear una propiedad o agregarle otra propiedad al http.
Si no envío esos caracteres me hace bien el post y me devuelve la respuesta correcta.

Saludos.
Espero haberme explicado.

Casimiro Noteví 11-04-2014 17:45:11

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

ecfisa 11-04-2014 22:59:14

Cita:

Empezado por JM1985 (Mensaje 475070)
...
Al momento de hacer un post. con el http.

les enseño el código.
parametros->Add("us=" + InfoMain->usuarioCFDI);
parametros->Add("cfdi=" + cfdi);
// Almacenando la respuesta del post.
archivoTemporal->Text = http->Post(InfoMain->wsTimbradoPAC, parametros);

...
No se si hay que setear una propiedad o agregarle otra propiedad al http.

Hola JM1985.

¿ De que tipo son "http", "InfoMain", "parametros" y "archivoTemporal" respectivamente?

Saludos :)

JM1985 12-04-2014 15:41:38

Post
 
Buen día :D

Parametros es una lista string.
InforMain->UsuarioCFDI - Es la variable que contiene el nombre del usuario.
cfdi = Es un XML ya convertido a AnsiString.

archivoTemporal->Text - Almacena la respuesta del timbrado.


No se si la verdad halla algo que no este haciendo bien no se una propiedad o algo así.
Y cuando codifico el caracter & a %26 lo vuelve a codificar cuando pasa por la url y es cuando marca el error.

Saludos.

ecfisa 12-04-2014 22:12:42

Hola.

¿ Y "http" es de tipo TIdHTTP ?

Saludos :)

JM1985 14-04-2014 15:04:48

Hola buen día.
Si es del tipo TIdHTTP Indy..


Con ello realizo el post.

Hay alguna propiedad especifica del objeto para codificar a UrlEncode ?

Saludos.

JM1985 14-04-2014 17:06:54

Hola de nuevo. Estas son las propiedades que estoy utilizando.
Supongo que me hace falta alguna propiedad para que no se codifique dos veces o me acepte el carácter &.

Saludos.


Código:

  http->Request->Clear();
  http->Request->Accept = "text/xml";
  http->Request->AcceptCharSet = "ISO-8859-1";
  http->Request->ContentType = "application / x-www-form-urlencoded";


JM1985 21-04-2014 17:49:52

Post.
 
Hola hola de nuevo eficsa
alguna sugerencia ??
Gracias.

Saludos.


La franja horaria es GMT +2. Ahora son las 05:15:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi