2016-06-24 9 views
0

QRコードを生成するWindows Phoneアプリケーションを開発しています。コードをスキャンすると、応答がtrueに戻ります。コードとアドバイスを見てください他のアプリがコードをスキャンしていると誤った応答をしたとしても。HttpClientウィンドウを使用したbool応答の処理

private async void queryQRCode(string code) 
    { 
     try 
     { 
      using (var client = new HttpClient()) 
      { 
       client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
       var authorisationHeader = GenerateBasicAuthorizationParameter("merchant-" + ObjUserData.MerchantId, ObjUserData.PassApiPassword); // 12ED5A5F2B38ACCBE437731BB2AC1F30 35A09A5C2AE97F055A0FDAEDA5A7093D 

       //Console.WriteLine ("http content - " + httpContent.ReadAsStringAsync().Result); 
       HttpResponseMessage httpResponse = new HttpResponseMessage(); 

       // Do the actual request and await the response 
       client.DefaultRequestHeaders.Authorization = authorisationHeader; 
       var f = QueryCodeUrl + "/" + code + "/scanned"; 

       httpResponse = await client.GetAsync(new Uri(f)); 
       //httpResponse.EnsureSuccessStatusCode(); 

       // If the response contains content we want to read it! 
       if (httpResponse.Content != null) 
       { 
        var responseContent = await httpResponse.Content.ReadAsStringAsync(); 

        // From here on you could deserialize the ResponseContent back again to a concrete C# type using Json.Net 
        Debug.WriteLine(responseContent); 

        try 
        { 
         ScannedCodeResult res = JsonConvert.DeserializeObject<ScannedCodeResult>(responseContent); 
         Debug.WriteLine("RETURNED RESPONSE IS "+res.scanned.ToString()); 


         if (res.scanned == false) 
         { 
          queryQRCode(code); 

         } 
         else 
         { 
          Debug.WriteLine("YAY!!!! The User has successfully scanned the application"); 



         } 
        } 
        catch (Exception ex) 
        { 
         Debug.WriteLine(ex.Message + ex.StackTrace); 
        } 
        // var qrResponse = (VcsMasterPassService.MasterPassModels.QRCodeResponse)JsonConvert.DeserializeObject (responseContent, typeof(VcsMasterPassService.MasterPassModels.QRCodeResponse)); 
        // CreateQRCodeImage (qrResponse.code); 
       } 

      } 
     } 
     catch (Exception ex) 
     { 
      Debug.WriteLine(ex.Message + ex.StackTrace); 
     } 
     finally 
     { 

     } 
    } 

答えて

0

上記の問題は、Windows電話のキャッシュによって発生します。