【问题标题】:How to POST to a webservice that doesn't accept SOAP如何发布到不接受 SOAP 的 Web 服务
【发布时间】:2019-01-03 16:08:29
【问题描述】:

我目前正在尝试将已编译的令牌发送到需要令牌的 Web 服务,但我无法使用大多数 .NET 4.5 类来执行此操作。

每次我向服务器发送任何类型的 HTTP POST 请求时,它都无法读取我发送给它的信息,因为它们显然不接受包括 SOAP 调用在内的任何类型的连接。

我已经积极尝试了解如何在没有 SOAP 调用的情况下联系服务器,但我能找到的唯一方法是将令牌包含在 HTML 中并使用 Javascript 发布。出于显而易见的原因,我不想使用这种方法,因为它不安全。

public void sendHTTPPost(string token)
{
    ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
    var client = new RestClient("DOMAIN");
    var request = new RestRequest("URLEXTRA", Method.POST);
    var tokenToBytes = Encoding.ASCII.GetBytes(token);
    string encodedToken = System.Convert.ToBase64String(tokenToBytes);
    request.AddParameter("TOKEN", encodedToken);
    var response = client.Execute(request);
    Response.Write(response.Content);
}

服务器应该能够看到数据,但如前所述,服务器不接受任何带有 SOAP 绑定的 POST 方法。

是否有其他方法可以通过 .NET 联系此服务而不使用 SOAP 调用/绑定?

【问题讨论】:

  • SOAP 只是建立在 HTTP 之上的众多约定之一。如果服务器正在执行某种形式的 HTTP,您需要找出它遵循什么约定。我们无法帮助您发现这一点 - 这将是服务器文档或与服务器维护人员的对话。

标签: .net saml restsharp


【解决方案1】:

如果它需要一个带有参数的简单 http post,您可以在 .net 中使用 WebRequest 客户端而不是 rest 客户端。

https://docs.microsoft.com/en-us/dotnet/framework/network-programming/how-to-send-data-using-the-webrequest-class

【讨论】:

    猜你喜欢
    • 2016-11-29
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    相关资源
    最近更新 更多