Description
Example
var batch = odataClient.CreateBatch();
batch.Create("Tests", new TestEntity { Name = "test"} );
await batch.ExecuteAsync(context.CancellationToken);
Error from OData Client
This operation is not supported for a relative URI.
StackTrace
at System.Uri.get_PathAndQuery()
at PanoramicData.OData.Client.HttpMessageContent.BuildContentAsync()
at PanoramicData.OData.Client.HttpMessageContent.SerializeToStreamAsync(Stream stream, TransportContext context)
at System.Net.Http.HttpContent.<CopyToAsync>g__WaitAsync|46_0(ValueTask copyTask)
at System.Net.Http.MultipartContent.SerializeToStreamAsyncCore(Stream stream, TransportContext context, CancellationToken cancellationToken)
at System.Net.Http.HttpContent.LoadIntoBufferAsyncCore(Task serializeToStreamTask, LimitArrayPoolWriteStream tempBuffer)
at System.Net.Http.HttpContent.WaitAndReturnAsync[TState,TResult](Task waitTask, TState state, Func`2 returnFunc)
at PanoramicData.OData.Client.ODataClient.CloneRequestAsync(HttpRequestMessage request)
at PanoramicData.OData.Client.ODataClient.TrySendRequestAsync(HttpRequestMessage request, Int32 retryCount, CancellationToken cancellationToken)
at PanoramicData.OData.Client.ODataClient.SendWithRetryAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at PanoramicData.OData.Client.ODataClient.ExecuteBatchAsync(ODataBatchBuilder batch, CancellationToken cancellationToken)
Environment
- PanoramicData.OData.Client version: 10.0.47
- .NET version: .NET 10
Root Cause
Every batch operation has relative url. So we need add check if url IsAbsoluteUri in HttpMessageContent
private async Task<byte[]> BuildContentAsync()
{
var sb = new StringBuilder();
// Request line: METHOD path HTTP/1.1
// Below add check IsAbsoluteUri
var requestUri = _request.RequestUri?.PathAndQuery ?? "/";.
...
}
Description
Example
Error from OData Client
This operation is not supported for a relative URI.
StackTrace
Environment
Root Cause
Every batch operation has relative url. So we need add check if url
IsAbsoluteUriinHttpMessageContent