本文整理汇总了C#中HttpClientHelper.GetEnqueueUri方法的典型用法代码示例。如果您正苦于以下问题:C# HttpClientHelper.GetEnqueueUri方法的具体用法?C# HttpClientHelper.GetEnqueueUri怎么用?C# HttpClientHelper.GetEnqueueUri使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HttpClientHelper
的用法示例。
在下文中一共展示了HttpClientHelper.GetEnqueueUri方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessInprocessQueue
public async Task<bool> ProcessInprocessQueue()
{
if (!InprocessQueue.IsEmpty)
{
string fileName;
while (InprocessQueue.TryDequeue(out fileName))
{
byte[] buffer = new byte[1024];
using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read, 0x1000, true))
{
int bytesRead = 0;
long totalBytes = 0;
do
{
// Asynchronously read from the file stream.
bytesRead = await fileStream.ReadAsync(buffer, 0, buffer.Length);
totalBytes += bytesRead;
} while (bytesRead > 0);
fileStream.Seek(0, SeekOrigin.Begin);
var httpClientHelper = new HttpClientHelper();
string correlationId = Settings.UseFileNameAsExternalCorrelationId ? Path.GetFileName(fileName) : null;
Uri enqueueUri = httpClientHelper.GetEnqueueUri();
Console.WriteLine("Sending request - " + enqueueUri + " - for file " + Path.GetFileName(fileName) + ". Request size - " + totalBytes + " bytes.");
var response = await httpClientHelper.SendPostRequestAsync(enqueueUri, fileStream, correlationId);
if (response.IsSuccessStatusCode)
{
var messageId = await response.Content.ReadAsStringAsync();
await Console.Out.WriteLineAsync("File - " + Path.GetFileName(fileName) + " - enqueued successfully.").ConfigureAwait(false);
await Console.Out.WriteLineAsync("Response - " + messageId.ToString()).ConfigureAwait(false);
await Task.Run(() =>
{
var successOutput = Path.Combine(Settings.SuccessDir, Path.GetFileName(fileName));
if (File.Exists(successOutput))
{
File.Delete(successOutput);
}
File.Move(fileName, successOutput);
Console.Out.WriteLineAsync("File moved to success location.");
});
}
else
{
await Console.Out.WriteLineAsync("File - " + Path.GetFileName(fileName) + " - enqueued failed.").ConfigureAwait(false);
await Console.Out.WriteLineAsync("Response - Status: " + response.StatusCode + ", Reason: " + response.ReasonPhrase).ConfigureAwait(false);
await Task.Run(() =>
{
var failureOutput = Path.Combine(Settings.ErrorDir, Path.GetFileName(fileName));
if (File.Exists(failureOutput))
{
File.Delete(failureOutput);
}
File.Move(fileName, failureOutput);
Console.Out.WriteLineAsync("File moved to failure location.").ConfigureAwait(false);
});
}
}
}
}
return true;
}