EXEC @ret = sp_OACreate 'MSXML2.ServerXMLHTTP', @token OUT;
IF @ret <> 0 RAISERROR('Unable to open HTTP connection.', 10, 1);
-- Send the request.
EXEC @ret = sp_OAMethod @token, 'open', NULL, 'POST', @url, 'false';
--set a custom header Authorization is the header key and VALUE is the value in the header
EXEC @ret = sp_OAMethod @token, 'SetRequestHeader', NULL, 'Authorization', @authHeader
--EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'Authentication', @authHeader;
EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'Content-Type', 'text/xml';
EXEC @ret = sp_OAMethod @token, 'send', NULL, @postData;
-- Handle the response.
EXEC @ret = sp_OAGetProperty @token, 'status', @status OUT;
EXEC @ret = sp_OAGetProperty @token, 'statusText', @statusText OUT;
EXEC @ret = sp_OAGetProperty @token, 'responseText', @responseText OUT;
这在SQL Server 2008中不起作用(“没有XML数据”。)>
但是所有这些工作(使用Postman上的代码功能)。使用您最了解的方式告诉我我的SQL Server过程在哪里错误:
C#-RestSharp
var client = new RestClient(<URL HERE>); client.Timeout = -1; var request = new RestRequest(Method.POST); request.AddHeader("Content-Type", "text/xml"); request.AddHeader("Authorization", "Basic <AUTH HERE>"); request.AddParameter("text/xml", "<XML HERE>, ParameterType.RequestBody); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content);
Python-http.client
import http.client import mimetypes conn = http.client.HTTPSConnection(<URL START HERE>) payload = "<XML HERE>" headers = { 'Content-Type': 'text/xml', 'Authorization': 'Basic <AUTH HERE>' } conn.request("POST", "<URL END HERE>", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
Javascript-jquery
var settings = {
"url": "<URL HERE>",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "text/xml",
"Authorization": "Basic <AUTH HERE>"
},
"data": "<XML HERE>",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
EXEC @ret = sp_OACreate'MSXML2.ServerXMLHTTP',@token OUT; IF @ret <> 0 RAISERROR('无法打开HTTP连接。',10,1); -发送请求。 EXEC @ret = sp_OAMethod @token,'打开',NULL,'...
它不起作用,因为它是旧的(2008)SQL Server。复制到一个现代的,它工作正常。