首先创建一个通用请求接口的存储过程
create PROCEDURE [GetHttpResponse]
@responseText NVARCHAR(MAX) OUTPUT
EXEC sp_OACreate 'WinHttp.WinHttpRequest.5.1', @winHttp OUTPUT;
DECLARE @timeout INT = 30000;
EXEC sp_OAMethod @winHttp, 'SetTimeouts', NULL, @timeout, @timeout, @timeout, @timeout;
EXEC sp_OAMethod @winHttp, 'Open', NULL, 'POST', @url, 'false';
EXEC sp_OAMethod @winHttp, 'SetRequestHeader', NULL, 'Content-Type', 'application/json';
EXEC sp_OAMethod @winHttp, 'Send', NULL, @jsonBody;
EXEC sp_OAGetProperty @winHttp, 'Status', @statusCode OUTPUT;
EXEC sp_OAGetProperty @winHttp, @responseText OUTPUT;
EXEC sp_OADestroy @winHttp;
调用上面的存储过程,请求API接口
declare @title varchar(100) =''
declare @content varchar(500)=''
declare @url nvarchar(max) = 'http://localhost:80/Msg/SengMsg'
declare @jsonBody nvarchar(max)
N'{"title":"' + @title + '",' +
N'"content":"' + @content + '"}'
declare @responseText nvarchar(max)
exec [iemis].[GetHttpResponse]
@statusCode = @statusCode output,
@responseText = @responseText output;
然后写对应的SpringBoot接口
public class MessageController {
public ResponseEntity sendMsg(@RequestBody MessageRequest messageRequest) {
System.out.println("接受的数据 Title: " + messageRequest.getTitle() + ", Content: " + messageRequest.getContent());
return new ResponseEntity<>("成功", HttpStatus.OK);