HttpClient詳解、或いは非同期の落とし穴について

37
HttpClient 詳詳 詳詳詳詳詳詳詳詳詳詳詳詳詳詳詳

description

Room Metro #15

Transcript of HttpClient詳解、或いは非同期の落とし穴について

Page 1: HttpClient詳解、或いは非同期の落とし穴について

HttpClient 詳解或いは非同期の落とし穴について

Page 2: HttpClient詳解、或いは非同期の落とし穴について

Self Introduction

Page 3: HttpClient詳解、或いは非同期の落とし穴について
Page 4: HttpClient詳解、或いは非同期の落とし穴について

昔々のお話です。

Page 5: HttpClient詳解、或いは非同期の落とし穴について

昔々のお話です Part 2 。

Page 6: HttpClient詳解、或いは非同期の落とし穴について

Asynchronous has come

Page 7: HttpClient詳解、或いは非同期の落とし穴について

色々無理ががが

Page 8: HttpClient詳解、或いは非同期の落とし穴について
Page 9: HttpClient詳解、或いは非同期の落とし穴について

HttpClient とは

Page 10: HttpClient詳解、或いは非同期の落とし穴について

こんな感じ

Page 11: HttpClient詳解、或いは非同期の落とし穴について

POST も楽ちん

Page 12: HttpClient詳解、或いは非同期の落とし穴について

Multipart な POST も楽ちん

Page 13: HttpClient詳解、或いは非同期の落とし穴について

でも C# 5.0 だけなんでしょう?

Page 14: HttpClient詳解、或いは非同期の落とし穴について

位置付け

Page 15: HttpClient詳解、或いは非同期の落とし穴について
Page 16: HttpClient詳解、或いは非同期の落とし穴について

AsyncOAuth とは?

Page 17: HttpClient詳解、或いは非同期の落とし穴について

こんなふーに使う

Page 18: HttpClient詳解、或いは非同期の落とし穴について

素材の味

Page 19: HttpClient詳解、或いは非同期の落とし穴について

AsyncOAuth は塩

Page 20: HttpClient詳解、或いは非同期の落とし穴について

実行の流れ

Page 21: HttpClient詳解、或いは非同期の落とし穴について

デフォルトの挙動はこの二つ

Page 22: HttpClient詳解、或いは非同期の落とし穴について

コンストラクタに Handler を渡す

Page 23: HttpClient詳解、或いは非同期の落とし穴について

DelegatingHandler?

Page 24: HttpClient詳解、或いは非同期の落とし穴について

OAuthMessageHandler の例

Page 25: HttpClient詳解、或いは非同期の落とし穴について

OAuthMessageHandler の流れ

Page 26: HttpClient詳解、或いは非同期の落とし穴について
Page 27: HttpClient詳解、或いは非同期の落とし穴について

async は大変なものを盗んでいきました

Page 28: HttpClient詳解、或いは非同期の落とし穴について
Page 29: HttpClient詳解、或いは非同期の落とし穴について

このコードがなぜ動かないかを考えよ

Page 30: HttpClient詳解、或いは非同期の落とし穴について

async/await とSynchronizationContext

Page 31: HttpClient詳解、或いは非同期の落とし穴について

解法 A

Page 32: HttpClient詳解、或いは非同期の落とし穴について

ConfigureAwait(false) により回避

Page 33: HttpClient詳解、或いは非同期の落とし穴について

解法 B

Page 34: HttpClient詳解、或いは非同期の落とし穴について

async の統一による回避

Page 35: HttpClient詳解、或いは非同期の落とし穴について

Eliminate the Deadlock

Page 36: HttpClient詳解、或いは非同期の落とし穴について
Page 37: HttpClient詳解、或いは非同期の落とし穴について

まとめ