FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
REST CLIENT con certificado digital
Hola a todos, estoy intentando acceder a un servicio web de la AEAT para el envio de declaraciones. Estoy intentando acceder con los componentes de REST CLIENT (TRESTCLIENT, TRESTREQUEST), y el servicio requiere identificarse con un certificado digital.
No encuentro la forma de indicarle a los componentes el certificado que tienen que utilizar. Si intento hacer la conexión me sale el error "Unspecified certificate from client". Lógicamente ya que no he indicado el certificado. Alquien me puede dar una pista. Gracias. Última edición por keys fecha: 22-10-2019 a las 14:22:49. |
#2
|
||||
|
||||
¿Has visto este hilo? puede que te sirva.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Mírate ésto:
https://forums.embarcadero.com/threa...ssageID=937474 A ver si te sirviese No hay nada en todo ClubDelohi sobre este tema |
#4
|
||||
|
||||
Poco, pero algo hay
Es un tema poco preguntado, ciertamente.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
Lo primero Gracias.
No se trata del SII, se trata de un sistema que ha sacado la AEAT para presentar declaraciones informativas como el 347, 349, 190, etc ..... Hasta ahora solo lo podian utilizar las declaraciones de mas de 40000 declarados, pero ahora se puede por todas las empresas para presentarlas directamente. Por si ha alguien le interesa el link es https://www.agenciatributaria.es/AEA...l/General.html Básicamente Consiste en enviar peticiones POST a un servidor, pero hay que identificarse con un certificado. Lo estoy intentando hacer con los componentes TRESTCLIENT ya que son los que normalmente utilizo para esta cosas. Mirando los enlaces que habeis indicado, algunos ya los habia seguido, a partir del delphi Tokio se debe poder hacer con un helper. TRESTClientHelper = class helper for TCustomRESTClient; Pero no consigo hacerlo, mas o menos estoy por aqui.
Pero no consigo que al hacer el execute me pase por esos eventos. Con otros componentes como los indy, TnetHttpClient parece que se puede hacer, pero me gustaria hacerlos con estos. Gracias |
#6
|
||||
|
||||
Hola a todos,
Leyendo sobre los "helpers" aquí y aquí, no me queda claro que sea lo más apropiado para tu caso, puesto que además dices que "no consigues que pase por esos eventos". ¿No deberías utilizar los eventos de la clase en cuestión, sin más? O bien extender la clase, pero, no usando "helpers", de modo que puedas sobreescribir los métodos que te interesen. Ojo, que, tal vez esté equivocado y se pueda hacer con "helpers" tal como estás intentándolo... acaso algún compañero pueda aportar algo más de luz al asunto. |
#7
|
||||
|
||||
El problema es que la clase TRESTCLIENT no tiene esos eventos. Según he podido leer se hace con los helpers.
http://docwiki.embarcadero.com/Libra...STClientHelper http://docwiki.embarcadero.com/Libra...tHelper_Events |
#8
|
||||
|
||||
Hola a todos,
Pero, entonces, ¿la definición del "helper" que has puesto arriba es la tuya propia? Pareciera que el propio Delphi ofrece dicho "helper"... de modo que tendrías que usarlo y no crear otro... P.D. Prueba también a "derivar" de "TRESTRequest", acaso hasta de "TRESTClient"..., en lugar de "TCustomRESTClient"... P.D.2. Parece que no voy por el buen camino... pero yo sí veo propiedades que acaso puedan usarse en "TCustomRESTClient", pero, no mediante un "helper",... sino derivando una clase de ahí... es más, el propio "TRESTClient", que deriva de "TCustomRESTClient", ofrece las propiedades que pareces necesitar:
Última edición por dec fecha: 23-10-2019 a las 20:21:18. |
#9
|
||||
|
||||
Hola.
Esas propiedades que indicas no estan en delphi Tokio, esa es la solución que dan para los delphi anteriores. Segun indica el siguiente enlace. https://forums.embarcadero.com/threa...ssageID=937474
En cuanto al helper que sale en la ayuda no consigo encontrar en que unit esta. Por eso lo he añadido yo. Lo he conseguido hacer con el componente TNetHTTPClient, que si tiene el evento NeedClientCertificate, pero sigo empeñado en hacerlo con los TRESTCLIENT. Un Saludo. |
#10
|
||||
|
||||
Hola a todos,
Yo he mirado en Delphi 10.3. ¿Acaso no es posible hacerlo tal como quieres, sin más? Quiero decir, usando "helpers" creo que no podría hacerse, directamente, pues, como tú mismo ves, esos "métodos / eventos" no se disparan, puesto que un "helper" "añade", pero, "no hereda", si no me equivoco. Ahora bien, por otro lado, dices que en tu versión de Delphi, no existen las propiedades que he mencionado... luego no podrías tampoco hacerlo usando "herencia", porque, simplemente, la clase de la que ibas a heredar no cuenta con los métodos / eventos que tú esperas. Por eso digo que acaso no puedas hacerlo... al menos no con la versión de Delphi que estás usando... |
#11
|
||||
|
||||
Hola otra vez.
Yo creo que es un problema o error del delphi. Ese helper deberia estar definido en la unit REST.Client que es como indica la ayuda. En la ayuda de delphi tokio http://docwiki.embarcadero.com/Libra...en/REST.Client aparece que contiene esa clase. Pero luego si accedemos a esa unit no esta definida. En el delphi Rio, pone que la clase esta en Rest.Client http://docwiki.embarcadero.com/Libra...STClientHelper pero luego en es unit no esta http://docwiki.embarcadero.com/Libra...en/REST.Client definida. Me tendré que dar por vencido y usare TNetHTTPClient. |
#12
|
||||
|
||||
Hola a todos,
Yo también creo que en la versión de Delphi que estás usando no están los métodos que necesitas en la clase de marras, sin embargo, sí están en Delphi 10.3, que, es en la versión de Delphi que yo estoy mirando. Tampoco aquí está el "helper", y, o me equivoco, o no podría usarse para lo que necesitas... pero es cierto que en la ayuda aparece como dices... lo que a mí me confunde un poco. Si yo tuviera que hacer lo que necesitas con la versión de Delphi que tengo entre manos, lo haría usando las propiedades / eventos de la clase en cuestión... no sería necesario "helper" alguno. Puede que en versiones anteriores de Delphi sí fuese necesario... de modo que podría usarse... y yo estoy equivocado respecto de que no pueda usarse. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Conseguir un certificado digital para firmar código | dec | Varios | 148 | 14-04-2023 10:18:38 |
Agregar Certificado Digital | carlos gonzalez | Varios | 1 | 16-08-2019 10:37:15 |
Problemas con certificado digital | Paulao | Varios | 3 | 26-09-2011 18:00:46 |
|