コメント
コメントの投稿
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。
using System; using System.Net; using System.Text; using System.Threading.Tasks; using System.Diagnostics; using Newtonsoft.Json; namespace ConsoleApp1 { class Program { public class LambdaRequest { [JsonProperty(PropertyName = "body")] public string body { get; set; } } public class RequestParam { [JsonProperty(PropertyName = "value1")] public int value1 { get; set; } [JsonProperty(PropertyName = "value2")] public int value2 { get; set; } } /// <summary> /// コンソールアプリのエントリポイント /// POSTを非同期で100回以上投げる /// </summary> /// <param name="args"></param> static void Main(string[] args) { int seq = 1; for (seq = 1; seq <= 101; seq++) { Program.PostAsync(seq); Debug.WriteLine("Seq:" + seq.ToString()); } Debug.WriteLine("Seq:" + seq.ToString()); Task.Delay(60000).Wait(); //全ての処理が終了するまで待機する } /// <summary> /// パラメータを渡して非同期POSTを実行する(結果をログ出力) /// </summary> /// <param name="seq"></param> private static void PostAsync(int seq) { Task.Run(async () => { string response = String.Empty; var dtTime = DateTimeOffset.Now.LocalDateTime; var param = new RequestParam { value1 = 5, value2 = 4 }; try { var json = JsonConvert.SerializeObject(param); json = JsonConvert.SerializeObject( new LambdaRequest { body = json } ); response = await Program.GetPostAsync(json); } catch (Exception ex) { response = ex.Message; } Debug.WriteLine("Seq:" + seq.ToString() + System.Environment.NewLine + "DateTime:" + dtTime.ToString("yyyy/MM/dd HH:mm:ss") + System.Environment.NewLine + "Response:" + response); return response; }); } /// <summary> /// POSTの処理(非同期) /// </summary> /// <param name="json"></param> /// <returns></returns> private static Task<string> GetPostAsync(string json) { try { string url = "https://xxxxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/default/AWSLambdaSampleApp"; WebClient webClient = new WebClient(); webClient.Headers[HttpRequestHeader.ContentType] = "application/json;charset=UTF-8"; webClient.Headers[HttpRequestHeader.Accept] = "application/json"; webClient.Encoding = Encoding.UTF8; return webClient.UploadStringTaskAsync(new Uri(url), json); } catch (Exception ex) { return new Task<string>(() => { return ex.Message; }); } } } }
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。