メンバーシップデータベースの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>
は私に、このエラーを与える:
それはそうですリモートサーバーが私にそれが見つからないと言っていることは明らかです私はそれを求めている。しかし、それは右のエンドポイントである、と私は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を介して期待される結果を得ています。みなさんありがとう!
LOL!それでおしまい?だから私はあなたの提案を試みた、と私は400の悪い要求のエラーを得た - 進歩!テストからのSOAP要求には何か残っていました。私はそれを削除し、私の資格情報を更新し、それは働いた!それはすごいです、ありがとうございました。私は本当に助けに感謝します(再び)!良い週末を! – daltec
ヘッダーはちょっと微妙に調整できますが、そうですね。今日はそれらの1つを持っていた。ちょっと小さすぎると頭痛のようなものがあるときはちょうど*それを愛してください;-) – Leigh
まあ、私は間違いなく私にもっとはっきりしているものとして詳しく見ていきます。この「教えることのできる瞬間」を提供してくれてありがとう、リー。私はここに投稿する前にこれを理解しようと費やしていた時間を認めたくありません! :-)あなたの忍耐と助けに感謝します! – daltec