Declare @ServiceUrl nvarchar(MAX)
Declare @req_data nvarchar(MAX)
Declare @data nvarchar(MAX)
set @ServiceUrl = 'http://**.**.**.***:****/Portal/Webservices/TESTService.asmx/TEST'
set @req_data='req_data={"DJH":"SPJHD201121015","SWLXID":"0211","SWLX":"%E5%80%9F%E8%B4%A7%E5%87%BA%E5%BA%93","SWRQ":"2020-11-21","CKKCZZID":"000001","CKKCZZ":"%E6%8B%9B%E8%BF%9C%E5%B1%95%E5%8E%85","CKCKID":"000198","CKCK":"%E6%91%86%E4%BB%B6%E6%88%90%E5%93%81%E4%BB%93%E5%BA%93","CWFLID":"CWWPFL025","CWFL":"%E9%87%91%E6%91%86%E4%BB%B6","XQDWMC":"%E7%8E%8B%E6%99%93%E5%AE%81","DYMS":"%E5%8A%A0%E7%9B%9F%E9%83%A8%E5%86%85%E9%83%A8%E5%80%9F%E8%B4%A7%E8%B6%85%E4%B8%80%E5%A4%A9%E7%9A%84","JHLX":"%E5%B1%95%E9%94%80%E5%80%9F%E8%B4%A7","YWGK":"%E5%8A%A0%E7%9B%9F%E9%83%A8","YJDQRQ":"2020-11-24","BZSM":"%E6%B1%9F%E8%8B%8F%E5%B1%95%E4%BC%9A%32%30%32%30%2E%31%31%2E%32%32%2D%32%34%E6%97%A5","LSBomrows":[{"XHB":1,"TMB":"HW000464896","WPBMB":"%30%30%32%32%34%36","WPMCB":"%E8%B6%B3%E9%87%91%39%39%39%E6%91%86%E4%BB%B6","GLFSB":"%E5%8D%95%E4%BB%B6%E7%AE%A1%E7%90%86","SLB":1.00,"JZB":50.620,"ZLB":50.620,"XSZGFDJ1B":0.00,"XSZGFDJ2B":0.00,"XSZGFB":0.00,"XSJGFDJB":0.00,"XSJGFB":0.00,"BZB":""},{"XHB":2,"TMB":"HW000464897","WPBMB":"%30%30%32%32%34%36","WPMCB":"%E8%B6%B3%E9%87%91%39%39%39%E6%91%86%E4%BB%B6","GLFSB":"%E5%8D%95%E4%BB%B6%E7%AE%A1%E7%90%86","SLB":1.00,"JZB":52.330,"ZLB":52.330,"XSZGFDJ1B":0.00,"XSZGFDJ2B":0.00,"XSZGFB":0.00,"XSJGFDJB":0.00,"XSJGFB":0.00,"BZB":""}]}'
Declare @Object as Int
Declare @ResponseText as Varchar(8000)
Exec sp_OACreate 'Msxml2.ServerXMLHTTP.3.0', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'POST',@ServiceUrl,'false'
Exec sp_OAMethod @Object, 'setRequestHeader', NULL, 'Content-Type','application/x-www-form-urlencoded'
Exec sp_OAMethod @Object, 'send', NULL, @req_data --发送数据
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
EXEC sp_OAGetErrorInfo @Object --异常输出
Select @ResponseText
Exec sp_OADestroy @Object
Get方式调用
Declare @ServiceUrl nvarchar(MAX)
Declare @req_data nvarchar(MAX)
Declare @data nvarchar(MAX)
set @ServiceUrl = 'http://**.**.**.***:****/Portal/Webservices/TESTService.asmx/TEST?req_data=teststr'
Declare @Object as Int
Declare @ResponseText as Varchar(8000)
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',@ServiceUrl,'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
select @Object
EXEC sp_OAGetErrorInfo @Object --异常输出
select @ResponseText
最近公司的app产品需要做一个消息推送,但是消息推送功能需要
调用
http
。但是原系统又不能修改代码,刷新表数据循环又太占资源还不能保证时效性。
于是想到了触发器可以解决时效性的问题,在网上刚好找到了
mssql
可以
调用
HTTP
,这样不是可以直接
调用
了吗
放上
调用
HTTP
的代码
首先要设置功能开关
EXEC sp_configure 'Ole Automation Procedures';
使用 pg
sql
-
http
进行
PostgreSQL
数据库的
HTTP
访问
项目地址:
http
s://gitcode.com/gh_mirrors/pg/pg
sql
-
http
在许多 Web 应用程序中,我们都需要与数据库进行交互以获取或更新数据。通常情况下,我们会使用特定语言(如 Python、Ruby 或 PHP)编写的客户端库来进行这种交互。但是,如果您希望直接通过
HTTP
协...
DECLARE @Property nvarchar(255);
DECLARE @Return nvarchar(255);
DECLARE @Source nvarchar(255), @Desc nvarchar(255);
DECLARE @
http
Status int;
DECLARE @response varchar(8000);
--创建 OLE 对象的实例
EXEC @HR = sp_OACreate N'MSXML2.XML
HTTP
.6.0',@Object OUT;
IF @HR 0
BEGIN
EXEC sp_OA
Get
ErrorInfo @Object,@Source OUT,@Desc OUT;
RAISERROR('Error Creating COM Component 0x%x, %s, %s',16,1, @HR, @Source, @Desc)
GOTO END_ROUTINE
BEGIN
--Open
EXEC @HR = sp_OAMethod @Object,N'open',Null,'
GET
','
http
://localhost:1728/
Http
Server/submit.aspx',FALSE;
IF @HR 0
BEGIN
EXEC sp_OA
Get
ErrorInfo @Object,@Source OUT,@Desc OUT;
RAISERROR('Open 0x%x, %s, %s',16,1, @HR, @Source, @Desc)
GOTO CLEANUP
--setRequestHeader
EXEC @HR = sp_OAMethod @Object,N'setRequestHeader',Null,'Content-Type','text/xml';
IF @HR 0
BEGIN
EXEC sp_OA
Get
ErrorInfo @Object,@Source OUT,@Desc OUT;
RAISERROR('setRequestHeader 0x%x, %s, %s',16,1, @HR, @Source, @Desc)
GOTO CLEANUP
--send
EXEC @HR = sp_OAMethod @Object,N'send',Null,'';
IF @HR 0
BEGIN
EXEC sp_OA
Get
ErrorInfo @Object,@Source OUT,@Desc OUT;
RAISERROR('send 0x%x, %s, %s',16,1, @HR, @Source, @Desc)
GOTO CLEANUP
--readyState
EXEC @HR = sp_OA
Get
Property @Object,'readyState', @
http
Status OUT;
IF @HR 0
BEGIN
EXEC sp_OA
Get
ErrorInfo @Object,@Source OUT,@Desc OUT;
RAISERROR('readyState 0x%x, %s, %s',16,1, @HR, @Source, @Desc)
GOTO CLEANUP
--verify status
IF @
http
Status 4
BEGIN
RAISERROR('readyState
http
status bad', 16,1)
GOTO CLEANUP
--status
EXEC @HR = sp_OA
Get
Property @Object,'status', @
http
Status OUT;
IF @HR 0
BEGIN
EXEC sp_OA
Get
ErrorInfo @Object,@Source OUT,@Desc OUT;
RAISERROR('
get
status 0x%x, %s, %s',16,1, @HR, @Source, @Desc)
GOTO CLEANUP
--verify status
IF @
http
Status 200
BEGIN
Print Cast(@
http
Status As varchar)
RAISERROR('Open
http
status bad', 16,1)
GOTO CLEANUP
--responseText
EXEC @HR = sp_OA
Get
Property @Object, 'responseText', @response OUT
IF @HR 0
BEGIN
EXEC sp_OA
Get
ErrorInfo @Object,@Source OUT,@Desc OUT;
RAISERROR('responseText 0x%x, %s, %s',16,1, @HR, @Source, @Desc)
GOTO CLEANUP
Print @response
CLEANUP:
BEGIN
EXEC @HR = sp_OADestroy @Object;
IF @HR 0
BEGIN
EXEC sp_OA
Get
ErrorInfo @Object,@Source OUT,@Desc OUT;
SELECT HR = convert(varbinary(4),@HR),Source=@Source,Description=@Desc;
END_ROUTINE:
RETURN;
PostgreSQL
HTTP
API Server
Options:
--port
HTTP
Server port [required] [default: 3000]
--dbhost
PostgreSQL
host [required] [default: "localhost"]
--dbport
PostgreSQL
port [required] [default: 5432]
--database P
static CookieContainer cookie = new CookieContainer();
public static string do
Http
Post
(string Url, string
post
DataStr)
SELECT urlencode( ' my special string ' ' s & things? ' );
urlencode
-------------------------------------
my+special+string's+&+things?
(1 row)
SELECT content FROM
http
_
get
( '
http
://
http
bin.org/ip ' );
content
-----------------------------
{"origin":"24.69.186.43"}
PG_NET:
PostgreSQL
扩展实现异步
HTTP
请求
pg_netA
PostgreSQL
extension that enables asynchronous (non-blocking)
HTTP
/
HTTP
S requests with
SQL
项目地址:
http
s://gitcode.com/gh_mirrors/pg/pg_net 项目介绍
PG_NET 是一个
Post
greSQ...