sql存储过程进行http post如果URL中有中文乱码问题

xiangyueming 2017-12-20 10:43:45
--P_PM_WorkFlow_FlowDo '王磊',''
ALTER PROCEDURE [dbo].[P_PM_WorkFlow_FlowDo] (@FInstID varchar(50),@FActID varchar(50)) AS
begin
declare @ServiceUrl as varchar(8000)
declare @UrlAddress varchar(500)
declare @FMobileServiceIP varchar(100)
declare @FMobileServicePort int
select @FMobileServiceIP=FMobileServiceIP,@FMobileServicePort=FMobileServicePort from T_CL_GlobalSet
set @UrlAddress = 'http://***.6*2.197.129:50000'+'/FaceView.asmx/'
declare @FunName varchar(50)
set @FunName = 'GetLoginResult'
declare @P1 varchar(50),@P2 varchar(50),@P3 varchar(50)
set @P1 = 'username'
set @P2 = 'password'
set @P3 = 'devicetoken'
set @ServiceUrl = @UrlAddress + @FunName + '?' + @P1 + '=' + @FInstID +'&' + @P2 + '=' + @FActID +'&' + @P3 + '='
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, 'setRequestHeader', NULL,'Content-Type', 'application/x-www-form-urlencoded';
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
end



像上面那种写法,对http接口进行get访问,但是如果我参数中有中文,则接口那边解析会乱码(前提:接口是正常的,通过其他途径访问都一切正常),通过抓包工具发现:1、通过sql存储过程进行get访问的原始流为:/FaceView.asmx/GetLoginResult?devicetoken=&password=&username=王磊 其中的中文不会进行urlencode 2、通过其他正常能访问接口的抓包的原始流为:/FaceView.asmx/GetLoginResult?devicetoken=&password=&username=%E7%8E%8B%E7%A3%8A

这个问题要怎么破?求高手解答
...全文
388 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2017-12-20
  • 打赏
  • 举报
回复
可是试试在sql中进行编码 http://blog.csdn.net/zlp321002/article/details/2842980

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧