Escrito por

Pregunta Jaume Marcet · nov 5

Acerca de %Net.HttpRequest

Tengo el siguiente código, con el que pretendo enviar el fichero pepe.XML que está en mi directorio C:\TEMP:

 httprequest=##class(%Net.HttpRequest).%New()
 httprequest.Username="dfgsdgsd"
 httprequest.Password="sdfbnnb"
 httprequest.Port=2222
 httprequest.Server="https://app.net
 httprequest.SetParam("API-Key","jh2871371naou1b82397"
 httprequest.SetParam("content-type", "application/xml"
 httprequest.Post("C:\TEMP\pepe.XML",2)
 response=httprequest.HttpResponse
 !,response
(Los datos no son reales. Supongo que Username, Password y Port no es necesario)

No hace nada, y no se ni si se conecta.

¿Qué hago mal

Product version: Caché 2018.1
$ZV: Cache for Windows (x86-64) 2018.1.11 (Build 112U) Fri May 9 2025 14:38:22 EDT

Comments

Hola @Jaume Marcet! 

Echa un vistazo a este código de ejemplo que me ha sugerido nuestro amigo el chatbot de IA:

Class objectscript.postXML
{
    ClassMethod test() {
        Set HTTPRequest = ##class(%Net.HttpRequest).%New()
        Set HTTPRequest.ContentType = "text/xml"Set HTTPRequest.NoDefaultContentCharset = 1Set HTTPRequest.Server = "wph.foactive.com"// Specify server address hereSet HTTPRequest.Location = "/ITOMCZ"// Specify location or endpoint here// Modify headers if necessaryDo HTTPRequest.RemoveHeader("User-Agent")
        Do HTTPRequest.RemoveHeader("Accept-Encoding")
        Do HTTPRequest.RemoveHeader("Connection")
        Do HTTPRequest.SetHeader("Expect", "100-continue")
        
        // Open XML file and copy its content into the request bodySet RequestXML = ##class(%Library.File).%New("c:\\path\\to\\your\\file.xml")   // Specify file path hereDo RequestXML.Open("RS")
        Do HTTPRequest.EntityBody.CopyFrom(RequestXML)
        Do RequestXML.%Close()
        
        // Send the requestSet sc = HTTPRequest.Post(HTTPRequest.Location)
        
        // Check the responseIf$$$ISOK(sc) {
            Write HTTPRequest.HttpResponse.StatusCode, !
            Write HTTPRequest.HttpResponse.Data.Read(), !
        } Else {
            // Handle errorsWrite"Error in request: ", $System.OBJ.DisplayError(sc), !
        }
    }
}
0
Jaume Marcet  nov 7 to Luis Angel Pérez Ramos

Me da:

301
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

0
Luis Angel Pérez Ramos  nov 11 to Jaume Marcet

Buenas, eso tiene pinta de que hay una redirección a la URL a la que estás invocando.

0