我需要通過BizTalk發送適配器調用其他API服務。 API只是在標頭中使用標記進行認證/授權。我一直在使用的HttpClient在C#控制檯應用程序測試這和它的作品罰款:BizTalk 2016:如何使用帶API令牌的HTTP發送適配器
string apiUrl = "https://api.site.com/endpoint/<method>?";
string dateFormat = "dateFormat = 2017-05-01T00:00:00";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("token", "<token>");
client.DefaultRequestHeaders.Add("Accept", "application/json");
string finalurl = apiUrl + dateFormat;
HttpResponseMessage resp = await client.GetAsync(finalurl);
if (resp.IsSuccessStatusCode)
{
string result = await resp.Content.ReadAsStringAsync();
var rootresult = JsonConvert.DeserializeObject<jobList>(result);
return rootresult;
}
else
{
return null;
}
}
不過,我想使用BizTalk撥打電話和處理響應。
我已經嘗試使用wcf-http適配器,爲安全性選擇'Transport'(它是一個https站點,因此安全性是必需的(?)),沒有指定任何憑證類型,並將標頭放置在'messages '適配器配置的選項卡。儘管出現這種情況,但會失敗:System.IO.IOException:由於遠程方關閉了傳輸流,因此身份驗證失敗。
我試過Google搜索這個特定場景並找不到解決方案。我確實發現了this文章,提供了有關OAUth處理的建議,但我很驚訝,即使在BizTalk 2016中,我仍然必須爲如此簡單的事情創建自定義程序集。
有誰知道這可能會在wcf-http發送適配器中完成嗎?