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 어댑터를 사용하여 보안을 위해 '전송'을 선택 했으므로 (보안이 필요하므로 (보안이 필요합니까 (?)) 자격 증명 유형이 지정되지 않고 토큰이있는 헤더가 '메시지 '탭을 클릭하십시오. 그러나 예외로 인해 실패합니다. System.IO.IOException : 원격 파티가 전송 스트림을 닫았 기 때문에 인증에 실패했습니다.
이 특정 시나리오에 대한 검색을 시도했지만 해결책을 찾을 수 없습니다. OAUth 처리에 대한 제안이있는 this 문서를 찾았지만 BizTalk 2016을 사용해도 여전히 간단한 사용자 지정 어셈블리를 만들어야한다는 점에 놀랐습니다.
wcf-http 어댑터에서이 작업을 수행하는 방법을 아는 사람이 있습니까?