我有一個BizTalk 2010項目,其中包含需要製作HTTP發佈的業務流程,然後檢查狀態碼和響應正文以確定下一個操作過程。BizTalk發送適配器HTTP發佈響應
我可以配置編排和端口來製作HTTP Post,但我無法收到回覆。
我應該使用發送/接收端口還是關聯?
我應該爲響應使用什麼模式(我相信響應是標準http響應:http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6)。
我有一個BizTalk 2010項目,其中包含需要製作HTTP發佈的業務流程,然後檢查狀態碼和響應正文以確定下一個操作過程。BizTalk發送適配器HTTP發佈響應
我可以配置編排和端口來製作HTTP Post,但我無法收到回覆。
我應該使用發送/接收端口還是關聯?
我應該爲響應使用什麼模式(我相信響應是標準http響應:http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6)。
如果你正在尋找一種通知(而不是在消息的內容),該消息已被成功發送,您可以在業務流程設置的邏輯發送端口屬性,如下所示:
"Delivery Notification" = Transmitted
可以使用Microsoft.XLANGs.BaseTypes.DeliveryFailureException來處理投遞失敗。
感謝您的迴應,但我我不確定這些中的任何一個將如何讓我查看/提取http響應狀態碼。 – Matt
檢查HTTP響應代碼並採取行動就像實施HTTP協議。Biztalk突出了這一點,並提供了「交付通知」,該通知應該足以可信地接受郵件已成功發送。對於例如200,201,202,204都是HTTP成功響應碼。 – user1826905
我嘗試連接的第三方服務返回成功時的響應正文(代碼200)中的數據以及400-4nn代碼正文中的錯誤消息。鑑於你提到的抽象,是否有可能檢索響應體,如果是的話如何? – Matt
Http狀態碼應作爲上下文屬性在響應消息上可用,您可以在「表達式」形狀中訪問該屬性。
statusCode = ResponseMessage(HTTP.ResponseStatusCode);
你ResponseMessage應該System.Xml.XmlDocument類型的,但它不會是一個真正的XML文檔,確保請求/響應端口被配置爲使用在響應側PassThruReceive管道。
感謝Brett,但是我收到一個錯誤:「沒有任何關聯的值消息中屬性'HTTP.ResponseStatusCode'。「 – Matt
僅供參考:我有一個編排發送一個簡單的xml消息(
我已經取得了一些進展;在接收端口上使用自定義管道組件使我能夠看到響應主體。但是,狀態碼和響應說明不包含在內。這也具有限制,即只有成功的消息(狀態碼200)纔會導致產生響應。 – Matt
當你說HTTP post時,是指將XML發送到SOAP服務,或者POX或JSON WebAPI調用或MVC控制器操作等? – StuartLC
它不是xml,它是類似於EDI的結構化文本。 – Matt
@Matt你可以發佈EDI消息結構 – MIkCode