Desidero poter inviare un messaggio JSON a un servizio REST. Sono in grado di fare una chiamata GET utilizzando esempi da google-ricercaCome posso passare un corpo dalla stored procedure a un servizio REST?
Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',
'http://www.webservicex.com/stockquote.asmx/GetQuote?symbol=MSFT',
--Your Web Service Url (invoked) 'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
ho provato diverse varianti della seguente:
Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
DECLARE @hResult int
DECLARE @source varchar(255), @desc varchar(255)
declare @Body as varchar(8000) =
'{
"Subsystem": 1,
"Exception": "",
"Message": "I have done what you asked",
"Time": "2014-06-09T11:16:35",
"Attribute": { "Number of attempts": "0" }
}'
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
EXEC sp_OAMethod @Object, 'open', NULL, 'post',
'https://thecorrecturl:446/api/handelse/', 'false'
Exec sp_OAMethod @Object, 'setRequestHeader', null, 'Content-Type', 'application/json'
declare @len int
set @len = len(@body)
EXEC sp_OAMethod @Object, 'setRequestHeader', null, 'Content-Length', @len
Exec sp_OAMethod @Object, 'setRequestBody', null, 'Body', @body
EXEC sp_OAMethod @Object, 'send', null
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
Il ResponseText torno è la omnious "{" Messaggio ":" si è verificato un errore "}"
qualcuno mi può punto nella giusta direzione per fare questo o semplicemente dare il modo corretto per farlo;)
ho usato la chiamata GET al mio URL. e ho ricevuto il giusto handelse dal servizio.
saluti Caroline
Avete notato che 'false' tutta la strada a destra? dopo il commento "il tuo URL del servizio web". questo fa scattare il problema? – Ruskin
Se cambio da falso a vero, ricevo invece una risposta NULL, ma ho comunque lo stesso errore sul lato server (dal registro di IIS POST/api/handelse/- 446 - XXXXXXXXXXX 500 0 0 203) – user3721971
hai provato a eseguire il chiama dallo studio di gestione per vedere qual è l'errore? hai appena visto la tua modifica - buona cosa hai trovato il problema – Ruskin