頭ん中

しがないITエンジニアが、考えた事を書きます。

UWPクライアントから社内プロキシ認証を超えてREST APIを叩くのに嵌った

(いちいちいちいち厄介な社内認証プロキシほんと嫌)

f:id:siamcats:20200130192353p:plain

マニュフェストに忘れずチェックいれて

// using Windows.Web.Http;
var httpClient = new HttpClient();
var uri = new Uri("https://contoso.com/GetApi");
var response = await httpClient.GetAsync(uri);

こんな感じで叩けば

f:id:siamcats:20200130185243p:plain

おなじみの認証ダイアログが勝手に出てきてくれるじゃないですか。

でもなんかよくわかんない例外になる時があるんです。

"Exception from HRESULT: 0x80072EF3"
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()

よくよく調べてるとアプリ起動後に最初に叩くリクエストがPOSTの時だけ起きてるみたいなんですよね。

var httpClient = new HttpClient();
var uri = new Uri("https://contoso.com/PostApi");
var content = "hogehogebody";
var response = await httpClient.PostAsync(uri,content);

なので適当にGETメソッドのリクエストを投げ認証させておいて、それからPOSTのAPIを叩けば普通にいけました。うーん…。