2016-06-22 1 views
0

を投げる:私は(EnableCookiesを使用しよう)と私が実行しようとすると、それがnull参照例外

  using (var fc = new FlurlClient().EnableCookies()) 
      { 
       var resp = "http://somesite.com".GetAsync(); 
       // var getResp = await "http://api.foo.com".GetAsync(); 

       var resultado = await resp; 

       var x = resultado; 
      } 

私は(EnableCookiesにnull参照の例外を取得)

スタック:

en Flurl.Url.op_Implicit(Url url) en C:\Aldenteware\Flurl\code\Flurl\Url.cs:línea 315 
    en Flurl.Http.CookieExtensions.GetCookieContainer(FlurlClient client) en C:\Aldenteware\Flurl\code\Flurl.Http.Shared\CookieExtensions.cs:línea 145 
    en Flurl.Http.CookieExtensions.EnableCookies(FlurlClient client) en C:\Aldenteware\Flurl\code\Flurl.Http.Shared\CookieExtensions.cs:línea 23 
    en AfipProcesa.Form1.<flurlAsync>d__0.MoveNext() en c:\Users\fabian.LH\Documents\Visual Studio 2013\Projects\AfipProcesa\AfipProcesa\Form1.cs:línea 86 
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción --- 
    en System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    en AfipProcesa.Form1.<button1_Click>d__7.MoveNext() en c:\Users\fabian.LH\Documents\Visual Studio 2013\Projects\AfipProcesa\AfipProcesa\Form1.cs:línea 119 
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción --- 
    en System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__4(Object state) 

私は何か別のやり方をしなければなりませんか?

私はflurlエラーハンドラの上に置くが、それはそれをキャッチしていない(それがnullの元であるとして)

私が使用し始め、同時に非同期およびflurl /待っています...残念私は作っていた場合基本的な間違い。私はhttp://tmenier.github.io/Flurl/client-lifetime/

using (var fc = new FlurlClient().EnableCookies()) 
{ 
    await url 
     .AppendPathSegment("login") 
     .WithClient(fc) 
     .PostUrlEncodedAsync(new { user = "user", pass = "pass" }); 

    var page = await url 
     .AppendPathSegment("home") 
     .WithClient(fc) 
     .GetStringAsync(); 

    // Need to inspect the cookies? FlurlClient exposes them as a dictionary. 
    var sessionId = fc.Cookies["session_id"].Value; 
} 

答えて

2

上の例として、コードを使用して

あなたがthis issueに対処するために、最近の変更に関連するバグを発見したようです。回避策は、ベースURLとFlurlClientをシードすることです:

using (var fc = new FlurlClient(url).EnableCookies())

私はこの問題をログに記録し、すぐにそれに対処します記載されているように、それは明らかに動作しません。

+0

どうもありがとうございます。ソースをダウンロードして何が起きているのか、私は試しましたが、私はvs2013を持っています。私はまだhttpclientについて学んでいます。私のアイデアはflurl watin + IEは自動的に毎日銀行の動きを自動的にチェックする=) – FabianSilva

+1

問題ありません。 Flurl.Httpの1.0リリースは非常に近いので、私は本当にこの厄介なバグを発見してうれしいです。私はバグを修正するまで、回避策を反映するようにドキュメントを更新しました。 –

関連する問題