1

私はRESTful Web サービスを作成していますが、基本的なステップアップ自体に大きな問題があります。

私は以下を行うことができます:

  1. RESTful Web サービスを作成し、XML (soap+xml ではない) をクライアントに送受信できます。webHttpBinding

  2. 以下に定義するコントラクトを使用して、RESTful Web サービスを作成し、soap+xml を送受信できます。

    [OperationContract]
         [WebInvoke(Method = "POST",
             UriTemplate = "",
             BodyStyle = WebMessageBodyStyle.Bare,
             RequestFormat = WebMessageFormat.Xml,
             ResponseFormat = WebMessageFormat.Xml)]        
         XmlElement PostRequestXML(Stream xmlData);
    

ポイント(2)は、soap+xmlデータを送受信する正しい方法ですか?

Web で多くの検索を行いましたが、soap + xml を送受信するための Web サービスの作成に関する詳細な手順を説明するより良いリンクが見つかりませんでした。

私が知りたいのですが :

  • SOAP+xml を送受信するための RESTful Web サービスを設計するためのより良い方法は何ですか? 操作契約の定義を見せてもらえますか?

  • どのバインディングを使用する必要がありますか? 例があれば共有します。

    • OperationContractweb.configの作成と構成に関する詳細な情報を教えていただけますか?

リクエストとレスポンスは以下のようになります。

リクエスト:

Header:
 POST /EnrollmentServer/Discovery.svc HTTP/1.1
 Content-Type: application/soap+xml; charset=utf-8
 User-Agent: Windows Phone 8 Enrollment Client
 Host: EnterpriseEnrollment.Contoso.com
 Content-Length: xxx
 Cache-Control: no-cache

<?xml version="1.0"?>
 <s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing"
 xmlns:s="http://www.w3.org/2003/05/soap-envelope">
 <s:Header>
 <a:Action s:mustUnderstand="1">
http://schemas.microsoft.com/windows/management/2012/01/enrollment/IDiscoveryService/Discover
 </a:Action>
 <a:MessageID>urn:uuid: 748132ec-a575-4329-b01b-6171a9cf8478</a:MessageID>
 <a:ReplyTo>
 <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
 </a:ReplyTo>
 <a:To s:mustUnderstand="1">
https://ENROLLTEST.CONTOSO.COM/EnrollmentServer/Discovery.svc
 </a:To>
 </s:Header>
 <s:Body>
 <Discover xmlns="http://schemas.microsoft.com/windows/management/2012/01/enrollment/">
 <request xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
 <EmailAddress>user@contoso.com</EmailAddress>
 <RequestVersion>1.0</RequestVersion>
 </request>
 </Discover>
 </s:Body>
 </s:Envelope>

応答:

ヘッダ:

 HTTP/1.1 200 OK
 Content-Length: 865
 Content-Type: application/soap+xml; charset=utf-8
 Server: EnterpriseEnrollment.Contoso.com
 Date: Tue, 02 Aug 2012 00:32:56 GMT



<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
 xmlns:a="http://www.w3.org/2005/08/addressing">
 <s:Header>
 <a:Action s:mustUnderstand="1">
http://schemas.microsoft.com/windows/management/2012/01/enrollment/IDiscoveryService/DiscoverResponse
 </a:Action>
 <ActivityId>
 d9eb2fdd-e38a-46ee-bd93-aea9dc86a3b8
 </ActivityId>
 <a:RelatesTo>urn:uuid: 748132ec-a575-4329-b01b-6171a9cf8478</a:RelatesTo>
 </s:Header>
 <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">>
 <DiscoverResponse
 xmlns="http://schemas.microsoft.com/windows/management/2012/01/enrollment">
 <DiscoverResult>
 <AuthPolicy>OnPremise</AuthPolicy>
 <AuthUrl/>
 <EnrollmentPolicyServiceUrl>
https://enrolltest.contoso.com/ENROLLMENTSERVER/DEVICEENROLLMENTWEBSERVICE.SVC
 </EnrollmentPolicyServiceUrl>
 <EnrollmentServiceUrl>
https://enrolltest.contoso.com/ENROLLMENTSERVER/DEVICEENROLLMENTWEBSERVICE.SVC
 </EnrollmentServiceUrl>
 <FederatedServiceName/>
 <FederatedServicePolicy/>
 </DiscoverResult>
 </DiscoverResponse>
 </s:Body>
 </s:Envelope>
4

1 に答える 1