0

我有一个下面的网络服务设计

POST /films/FilmApp.asmx HTTP/1.1
Host: myhost.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/getFilms"

<?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>
    <getFilms xmlns="http://tempuri.org/">
      <s1>string</s1>
    </getFilms>
  </soap:Body>
</soap:Envelope>

对于上述网络服务请求,我正在尝试发起一个 http 调用并在我的移动应用程序中使用它。我将我的 http 请求解析为

http://myhost.com/films/FilmApp.asmx/getFilms?s1=inception

对于上述请求,我收到的回复为

http://myhost.com/Errorpage.aspx?aspxerrorpath=/films/FilmApp.asmx/getFilms.

我期待如下 XML 响应

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?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>
    <getFilmsResponse xmlns="http://tempuri.org/">
      <getFilmsResult>xml</getFilmsResult>
    </getFilmsResponse>
  </soap:Body>
</soap:Envelope>

../films/FilmApp.asmx/getFilms 是一条有效路径,我无法理解为什么会收到此错误。我的http请求有问题吗?

4

1 回答 1

0

当您在配置文件中启用此功能时,http://myhost.com/films/FilmApp.asmx/getFilms?s1=inception唯一可以从浏览器用于测试目的:

<system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
</system.web>

您需要 POST 的 SOAP 端点是 http://myhost.com/films/FilmApp.asmx.

于 2013-08-07T07:32:47.567 回答