gpt4 book ai didi

.net - 提供参数时 SOAP 请求失败

转载 作者:行者123 更新时间:2023-12-01 07:02:24 24 4
gpt4 key购买 nike

当我使用参数 orderid 调用我的 Soap ASMX 服务时,它失败并说。有任何想法吗?

System.InvalidOperationException: Request format is invalid: text/xml; charset=utf-8.
at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

public class Service1 : System.Web.Services.WebService {

    [WebMethod(EnableSession=true)]
[SoapDocumentMethod]

public Order MyLiteralMethod([XmlElement("MyOrderID")] string orderId)
{

//logic
}
}


fiddler 请求 header
Host: localhost:49033
Content-Type: text/xml; charset=utf-8
Content-Length: 369
SOAPAction: "http://tempuri.org/MyLiteralMethod"

fiddler 请求正文
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<MyLiteralMethod xmlns="http://tempuri.org/">
<MyOrderID>sdasd</MyOrderID>
</MyLiteralMethod>
</soap:Body>
</soap:Envelope>

进一步的发现
我可以从其他 Web 调试代理工具 [STORM] 调用服务并传递参数。我认为这是特定于 fiddler

已解决的问题

似乎是 fiddler 的问题。进入工具->选项-> https ..删除了解密HTTPS流量..重新启动了 fiddler 。然后重新添加这些选项并重新启动。我不知道这个过程是否解决了问题,但我可以通过 fiddler 提出请求。

最佳答案

我只是在旧的 ASMX 服务上遇到了同样的问题(这与 Fiddler 无关)。解决方案:

您正在使用 SOAP 协议(protocol)调用 Web 服务。我猜你用来调用它的 URL 是:

http://yourserver/service.asmx/methodOfService

但是,当您对服务执行简单的 GET 或 POST 时(例如使用 AJAX 时),必须使用此 URL。
使用 SOAP 时,您必须使用此 URL:
http://yourserver/service.asmx

没有方法名称,因为它包含在 SOAP 主体中。

关于.net - 提供参数时 SOAP 请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18245089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com