내 .net 프레임 워크 웹 응용 프로그램에서 배치 요청에 대한 지원을 설정 한 후. 각각의 개별 요청에 무기명 토큰을 복사하는 경우에도 개별 요청은 금지되어 반환됩니다. 내 배치 지원에 대한 내 통합 테스트는 다음과 같습니다. ServerHelper 코드는 요청한 베어러 토큰을 추가합니다. 배치 지원을 추가 할 책임이 내 구성배치 요청 무기명 토큰
[TestMethod]
public async Task BatchRequestTest()
{
var requestMessage = new HttpRequestMessage(HttpMethod.Get, ServerHelper.HttpClient.BaseAddress + "values/22");
requestMessage.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", await ServerHelper.GetAccessToken());
var getMetricsRequest = new HttpMessageContent(requestMessage);
var getTransactionsRequest1 = new HttpMessageContent(new HttpRequestMessage(HttpMethod.Get, ServerHelper.HttpClient.BaseAddress + "values/23"));
var failingRequest = new HttpMessageContent(new HttpRequestMessage(HttpMethod.Get, ServerHelper.HttpClient.BaseAddress + "values/77"));
MultipartContent content = new MultipartContent("mixed", "batch_" + Guid.NewGuid().ToString());
content.Add(getMetricsRequest);
content.Add(getTransactionsRequest1);
content.Add(failingRequest);
HttpRequestMessage batchRequest = new HttpRequestMessage(HttpMethod.Post, ServerHelper.HttpClient.BaseAddress + "batch")
{
Content = content
};
var response = await ServerHelper.HttpClient.SendAsync(batchRequest);
Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);//assert true
var responseContents = await response.Content.ReadAsMultipartAsync();
var get1 = await responseContents.Contents[0].ReadAsHttpResponseMessageAsync();
var get2 = await responseContents.Contents[1].ReadAsHttpResponseMessageAsync();
var get3 = await responseContents.Contents[2].ReadAsHttpResponseMessageAsync();
Assert.AreEqual(HttpStatusCode.OK, get1.StatusCode);//assert fail
Assert.AreEqual(HttpStatusCode.OK, get2.StatusCode);//assert fail
Assert.AreEqual(HttpStatusCode.NotFound, get3.StatusCode);
}
부 :
var server = new HttpServer(httpConfiguration);
appBuilder.UseWebApi(server);
httpConfiguration.Routes.MapHttpBatchRoute(
routeName: "batch",
routeTemplate: "batch",
batchHandler: new DefaultHttpBatchHandler(server)
{
ExecutionOrder = BatchExecutionOrder.NonSequential
}
);
내가 내 파이프 라인에 뭔가를 추가해야합니까?
이봐,이 문제에 대한 해결책을 찾았습니까? 동일한 문제가있어 일괄 요청에 무기명 토큰을 설정해야합니다. – ObiEff