2016-10-13 40 views
1

メンバーシップデータベースのWebサービスとの通信に問題があります。 SoapUIを使用しているときにSOAPエンベロープから有効な結果が得られます。 CFHTTPとCF9を使って同じ封筒を送ろうとすると、何をしようとしても "404 Not Found"というエラーが出ます。ブラウザでURLにアクセスすると、「アクセスが拒否されました」というエラーが表示されます。ここでCFHTTP経由のSOAP Webサービスリクエストで404 Not Foundエラーが発生しました

は、私がcfsavecontentに持っているものです。

<cfsavecontent variable="soapBody"> 
    <cfoutput> 
    <?xml version=“1.0” encoding=“utf-8”?> 
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://membersuite.com/schemas" xmlns:con="http://membersuite.com/contracts"> 
     <soapenv:Header> 
     <sch:ConciergeRequestHeader> 
     <!--Optional:--> 
     <sch:BrowserId></sch:BrowserId> 
     <!--Optional:--> 
     <sch:SessionId></sch:SessionId> 
     <sch:AccessKeyId>MyAccessKey</sch:AccessKeyId> 
     <!--Optional:--> 
     <sch:AssociationId>MyAssociationID</sch:AssociationId> 
     <sch:Signature>MySignature</sch:Signature> 
     </sch:ConciergeRequestHeader> 
     </soapenv:Header> 
     <soapenv:Body> 
      <con:LoginToPortal> 
      <!--Optional:--> 
      <con:portalUserName>username</con:portalUserName> 
      <!--Optional:--> 
      <con:portalPassword>password</con:portalPassword> 
      </con:LoginToPortal> 
     </soapenv:Body> 
    </soapenv:Envelope> 
    </cfoutput> 
</cfsavecontent> 

そして、ここでは私のcfhttpのです:cfhttpのダンプ

<cfhttp url="https://soap.membersuite.com/mex" method="post" useragent="#CGI.http_user_agent#"> 
    <cfhttpparam type="header" name="charset" value="utf-8"> 
    <cfhttpparam type="header" name="mimetype" value="application/xml" /> 
    <cfhttpparam type="header" name="content-type" value="text/xml"> 
    <cfhttpparam type="header" name="SOAPAction" value="http://membersuite.com/contracts/IConciergeAPIService/LoginToPortal" /> 
    <cfhttpparam type="header" name="accept-encoding" value="no-compression" /> 
    <cfhttpparam type="header" name="content-length" value="#len(trim(soapBody))#"> 
    <cfhttpparam type="xml" name="soapenv" value="#trim(soapBody)#" /> 
</cfhttp> 

は私に、このエラーを与える:

enter image description here

それはそうですリモートサーバーが私にそれが見つからないと言っていることは明らかです私はそれを求めている。しかし、それは右のエンドポイントである、と私はWSDLでそれを見ることができます:私はまた私のCFのキーストーンへのWebサービスページからSSL証明書を追加した

<wsdl:operation name="LoginToPortal"> 
    <wsdl:input wsaw:Action="http://membersuite.com/contracts/IConciergeAPIService/LoginToPortal" message="tns:IConciergeAPIService_LoginToPortal_InputMessage"/> 
    <wsdl:output wsaw:Action="http://membersuite.com/contracts/IConciergeAPIService/LoginToPortalResponse" message="tns:IConciergeAPIService_LoginToPortal_OutputMessage"/> 
</wsdl:operation> 

。エラーメッセージに変更はありません。私はウィットの終わりにあり、どんな提案も感謝しています!再び、私はSoapUIを介して期待される結果を得ています。みなさんありがとう!

答えて

1

SoapUIリクエストを厳密に無視すると、ターゲットURLがhttps://soap.membersuite.com/に変更された場合、正常に動作しているようです。偽の認証情報を使用すると、404の代わりに「無効なアクセスキーIDが指定されました」という応答が表示されます。

<cfhttp url="https://soap.membersuite.com/" method="post" useragent="#CGI.http_user_agent#"> 
    <cfhttpparam type="header" name="Content-Type" value="text/xml; charset=utf-8" /> 
    <cfhttpparam type="header" name="SOAPAction" value="http://membersuite.com/contracts/IConciergeAPIService/LoginToPortal" /> 
    <cfhttpparam type="header" name="Accept-Encoding" value="no-compression" /> 
    <cfhttpparam type="header" name="Content-Length" value="#len(trim(soapBody))#"> 
    <cfhttpparam type="body" value="#trim(soapBody)#" /> 
</cfhttp> 
+0

LOL!それでおしまい?だから私はあなたの提案を試みた、と私は400の悪い要求のエラーを得た - 進歩!テストからのSOAP要求には何か残っていました。私はそれを削除し、私の資格情報を更新し、それは働いた!それはすごいです、ありがとうございました。私は本当に助けに感謝します(再び)!良い週末を! – daltec

+0

ヘッダーはちょっと微妙に調整できますが、そうですね。今日はそれらの1つを持っていた。ちょっと小さすぎると頭痛のようなものがあるときはちょうど*それを愛してください;-) – Leigh

+0

まあ、私は間違いなく私にもっとはっきりしているものとして詳しく見ていきます。この「教えることのできる瞬間」を提供してくれてありがとう、リー。私はここに投稿する前にこれを理解しようと費やしていた時間を認めたくありません! :-)あなたの忍耐と助けに感謝します! – daltec

関連する問題