社区
疑难问题
帖子详情
ms sql 2008 如何发送http post请求?急,请高手指点
hi_5461
2015-06-11 10:11:48
如题,请指导下,网上搜到的方案也试过,不好用。
...全文
698
5
打赏
收藏
ms sql 2008 如何发送http post请求?急,请高手指点
如题,请指导下,网上搜到的方案也试过,不好用。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liangkui6616
2017-05-10
打赏
举报
回复
------------------- 开启Sql Server 通讯配置 ------------------- sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE; GO EXEC sp_configure 'Ole Automation Procedures'; GO --------------------------------------------------------------- -- HTTP POST 请求 -- [测试] -- SELECT dbo.FN_HTTP_POST('http://10.7.1.47/seeyon/rest/token','{"userName":"rest","password":"123456"}','application/json','application/json'); -- DROP FUNCTION FN_HTTP_POST; CREATE FUNCTION FN_HTTP_POST( @URL VARCHAR(256), @DATA VARCHAR(2000), @REQ_H_ACCEPT VARCHAR(256), @REQ_H_CONTENT_TYPE VARCHAR(256) ) RETURNS VARCHAR(5000) AS BEGIN DECLARE @object int, @returnStatus int, @returnText varchar(5000), @errMsg varchar(2000), @httpStatus varchar(20) ; /* 初始化 */ EXEC @returnStatus = SP_OACreate 'Msxml2.ServerXMLHTTP.3.0',@object OUT; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('初始化对象失败,' + @errMsg + ISNULL(@returnText,'')); END /*创建链接*/ EXEC @returnStatus= SP_OAMethod @object,'open',NULL,'post',@URL,'false'; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('创建连接失败,' + @errMsg + ISNULL(@returnText, '')); END EXEC @returnStatus=SP_OAMethod @object,'setRequestHeader',NULL,'Accept',@REQ_H_ACCEPT; EXEC @returnStatus=SP_OAMethod @object,'setRequestHeader',NULL,'Content-Type',@REQ_H_CONTENT_TYPE; EXEC @returnStatus=SP_OAMethod @object,'setRequestHeader',NULL,'Content-Length','1000000'; /*发起请求*/ EXEC @returnStatus= SP_OAMethod @object,'send',NULL,@DATA; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('发起请求失败,' + @errMsg + ISNULL(@returnText, '')); END /*获取HTTP状态代码*/ EXEC @returnStatus = SP_OAGetProperty @Object, 'Status', @httpStatus OUT; IF @returnStatus <> 0 BEGIN EXEC sp_OAGetErrorInfo @Object, @errMsg OUT, @returnText OUT; RETURN ('获取HTTP状态代码失败,' + @errMsg + ISNULL(@returnText, '')); END IF @httpStatus <> 200 BEGIN RETURN ('访问错误,HTTP状态代码:' + @httpStatus); END /*获取返回信息*/ EXEC @returnStatus= SP_OAGetProperty @object,'responseText',@returnText OUT; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('获取返回信息失败,' + @errMsg + ISNULL(@returnText, '')); END RETURN @returnText; END ; CREATE FUNCTION FN_HTTP_GET( @URL VARCHAR(256), @DATA VARCHAR(2000), @REQ_H_ACCEPT VARCHAR(256), @REQ_H_CONTENT_TYPE VARCHAR(256) ) RETURNS VARCHAR(5000) AS BEGIN DECLARE @object int, @returnStatus int, @returnText varchar(5000), @errMsg varchar(2000), @httpStatus varchar(20) ; /* 初始化 */ EXEC @returnStatus = SP_OACreate 'Msxml2.ServerXMLHTTP.3.0',@object OUT; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('初始化对象失败,' + @errMsg + ISNULL(@returnText,'')); END /*创建链接*/ EXEC @returnStatus= SP_OAMethod @object,'open',NULL,'get',@URL,'false'; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('创建连接失败,' + @errMsg + ISNULL(@returnText, '')); END EXEC @returnStatus=SP_OAMethod @object,'setRequestHeader',NULL,'Accept',@REQ_H_ACCEPT; EXEC @returnStatus=SP_OAMethod @object,'setRequestHeader',NULL,'Content-Type',@REQ_H_CONTENT_TYPE; EXEC @returnStatus=SP_OAMethod @object,'setRequestHeader',NULL,'Content-Length','1000000'; /*发起请求*/ EXEC @returnStatus= SP_OAMethod @object,'send',NULL,@DATA; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('发起请求失败,' + @errMsg + ISNULL(@returnText, '')); END /*获取HTTP状态代码*/ EXEC @returnStatus = SP_OAGetProperty @Object, 'Status', @httpStatus OUT; IF @returnStatus <> 0 BEGIN EXEC sp_OAGetErrorInfo @Object, @errMsg OUT, @returnText OUT; RETURN ('获取HTTP状态代码失败,' + @errMsg + ISNULL(@returnText, '')); END IF @httpStatus <> 200 BEGIN RETURN ('访问错误,HTTP状态代码:' + @httpStatus); END /*获取返回信息*/ EXEC @returnStatus= SP_OAGetProperty @object,'responseText',@returnText OUT; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('获取返回信息失败,' + @errMsg + ISNULL(@returnText, '')); END RETURN @returnText; END ; CREATE FUNCTION FN_HTTP_PUT( @URL VARCHAR(256), @DATA VARCHAR(2000), @REQ_H_ACCEPT VARCHAR(256), @REQ_H_CONTENT_TYPE VARCHAR(256) ) RETURNS VARCHAR(5000) AS BEGIN DECLARE @object int, @returnStatus int, @returnText varchar(5000), @errMsg varchar(2000), @httpStatus varchar(20) ; /* 初始化 */ EXEC @returnStatus = SP_OACreate 'Msxml2.ServerXMLHTTP.3.0',@object OUT; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('初始化对象失败,' + @errMsg + ISNULL(@returnText,'')); END /*创建链接*/ EXEC @returnStatus= SP_OAMethod @object,'open',NULL,'put',@URL,'false'; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('创建连接失败,' + @errMsg + ISNULL(@returnText, '')); END EXEC @returnStatus=SP_OAMethod @object,'setRequestHeader',NULL,'Accept',@REQ_H_ACCEPT; EXEC @returnStatus=SP_OAMethod @object,'setRequestHeader',NULL,'Content-Type',@REQ_H_CONTENT_TYPE; EXEC @returnStatus=SP_OAMethod @object,'setRequestHeader',NULL,'Content-Length','1000000'; /*发起请求*/ EXEC @returnStatus= SP_OAMethod @object,'send',NULL,@DATA; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('发起请求失败,' + @errMsg + ISNULL(@returnText, '')); END /*获取HTTP状态代码*/ EXEC @returnStatus = SP_OAGetProperty @Object, 'Status', @httpStatus OUT; IF @returnStatus <> 0 BEGIN EXEC sp_OAGetErrorInfo @Object, @errMsg OUT, @returnText OUT; RETURN ('获取HTTP状态代码失败,' + @errMsg + ISNULL(@returnText, '')); END IF @httpStatus <> 200 BEGIN RETURN ('访问错误,HTTP状态代码:' + @httpStatus); END /*获取返回信息*/ EXEC @returnStatus= SP_OAGetProperty @object,'responseText',@returnText OUT; IF @returnStatus <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errMsg OUT, @returnText OUT; RETURN ('获取返回信息失败,' + @errMsg + ISNULL(@returnText, '')); END RETURN @returnText; END ;
三断笛
2016-09-22
打赏
举报
回复
用几个sp_OA****过程进行COM调用,调用XMLHTTP就行
「已注销」
2015-06-14
打赏
举报
回复
问题还没解决
「已注销」
2015-06-11
打赏
举报
回复
你发的文章我看了,并未提到数据库里如何发送,没有参考价值
Cherise_huang
2015-06-11
打赏
举报
回复
希望有帮助
http://blog.chinaunix.net/uid-25311424-id-3959591.html
2019小白
SQL
入门(零基础60分钟含
SQL
语法问答精彩)
零基础60分钟含
SQL
语法问答精彩
白天面试大厂血虐面试官,晚上手把手教小妹妹
SQL
注入!太刺激了!
SQL
注入详解和
SQL
注入之超详细
sql
map使用攻略一、什么是
sql
注入二、
SQL
注入攻击的总体思路三、
SQL
注入攻击实例前言基本操作确认WAF使用参数进行绕过使用脚本进行绕过使用格式脚本作用脚本参数组合策略绕过my
sql
绕过ms
sql
绕过accessOracle思维导图 一、什么是
sql
注入
SQL
注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过
SQL
语句,实现无账号登录,甚至篡改数据库。 二、
SQL
注入攻击的总体思路 寻找到
SQL
注入的位置
前端面试题杂烩part1
web app 问题:手机端 click 事件会有大约 300ms 的延迟 原因:手机端事件 touchstart --\> touchmove --> touchend or touchcancel --> click,因为在touch事件触发之后,浏览器要判断用户是否会做出双击屏幕的操作,所以会等待300ms来判断,再做出是否触发c
数据库连接出错(127.0.0.1)
今天忽然上不去网了,但自己在做的东西,在调试的时候连接数据库居然也出了问题也没法上网查一下,让我烦恼了好一段时间。 错误提示信息:ex.Message "在与
SQL
Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。
请
验证实例名称是否正确并且
SQL
Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 -
sap学习手册IV
请
教各位,我已经在测试系统里,归档了销售订单以及其发票,会计凭证和交货单,但是我想看看归档的效果,
请
问R3系统有可以查看到归档数据的功能吗?另外,交货单还对应一张物料凭证,我就是直接归档交货单了,不知道是不是应该先归档物料凭...
疑难问题
22,207
社区成员
121,730
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章