SQL执行WebService

写了一个钉钉发送消息的类, 要发送用友等审核单据信息, 

模式: 钉钉发消息功能在webservice中, 用友消息列表中有新消息时,采用触发器执行webservice. 

在测试中 ,功能正常 ,但将在汉字发送到手机端后,显示乱码. 

其实这种模式不合理, 这个乱码问题也不解决了.下面是触发器中的代码:

USE [UFDATA_001_2016]
GO
/****** Object:  StoredProcedure [dbo].[richen_message_send]    Script Date: 11/30/2018 08:03:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        <李孝徽>
-- Create date: <2018-11-05>
-- Description:    <单据在提交审批时,调用webservice向钉钉发送通知消息
--               在传入参数时,需要用户ID和消息内容 ,最后没使用原因:读数据库发出去消息到钉钉时中文乱码.    >
-- =============================================
ALTER PROCEDURE [dbo].[richen_message_send]
    @userid varchar(30),   
    @content varchar(200)
AS

BEGIN
    SET NOCOUNT ON;

    Declare @ServiceUrl nvarchar(1000) 
    Declare @UrlAddress nvarchar(100)
 
    --WebService地址:以http开头,结尾带斜杠
    set @UrlAddress = 'http://192.168.0.7/richen_ws/dd_ws.asmx/'
 
    DECLARE @FunName nvarchar(30)--WebService中调用的方法名
    SET @FunName = 'Send_DD'   
 
    --以下参数对应WebService中参数的[参数名]
    declare @P1  nvarchar(30),@P2  nvarchar(30)
    SET @P1='userid'
    SET @P2='content'
  
    --参数赋值
    DECLARE @P1_Value nvarchar(30),@P2_Value  nvarchar(200)
    set @P1_Value=@userid
    set @P2_Value=@content
    SET @ServiceUrl = @UrlAddress + @FunName  + '?' + @P1 +'='+ @P1_Value +'&' + @P2 + '=' +@P2_Value 
 
    --select  @serviceurl --调试时查看拼接结果
 
    ----访问地址执行获取结果
    Declare @Object as Int
    Declare @ResponseText as nvarchar(4000)                   
    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 @ResponseText     --调试时查看返回参数 
    Exec sp_OADestroy @Object

END
 
原文地址:https://www.cnblogs.com/snowguest/p/10583393.html