当前位置: 首页>>代码示例>>C#>>正文


C# HttpClientHelper.SendPostRequestAsync方法代码示例

本文整理汇总了C#中HttpClientHelper.SendPostRequestAsync方法的典型用法代码示例。如果您正苦于以下问题:C# HttpClientHelper.SendPostRequestAsync方法的具体用法?C# HttpClientHelper.SendPostRequestAsync怎么用?C# HttpClientHelper.SendPostRequestAsync使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HttpClientHelper的用法示例。


在下文中一共展示了HttpClientHelper.SendPostRequestAsync方法的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;
        }
开发者ID:Microsoft,项目名称:Dynamics-AX-Integration,代码行数:67,代码来源:AdvancedDataFlowNetwork.cs


注:本文中的HttpClientHelper.SendPostRequestAsync方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。