2017-05-04 2 views
4

J'écris Job Scheduler en utilisant la bibliothèque Quartz dans C#. Mon exigence est de savoir si une condition commerciale est remplie, j'ai besoin de faire un appel au serveur Apple.Comment appeler http depuis la classe dans la bibliothèque de classes C#?

Voici comment mon planificateur ressemble: -

public class CustomerJob : BaseJob 
{ 
    private readonly ICustomerSchedulerService _customerSchedulerService; 

    public CustomerJob (ICustomerSchedulerService customerSchedulerService) 
    { 
     _customerSchedulerService= customerSchedulerService; 
    } 
    public override void Execute(IJobExecutionContext context) 
    { 
     var customers = _customerSchedulerService.CheckExpiredTask(); 
     foreach(var customer in customers) 
     { 
      //I need to make a post request to apple server for each customer 
      //something like below however there is no HttpClient() available in this class 
     //var client = new HttpClient();  
     //client.PostAsync("https://sandbox.itunes.apple.com/verifyReceipt", customer)); 
     } 
     base.Execute(context); 
    } 
} 

Alors, comment répondre à cette exigence ??

Note: -
Je ne préférerais pas de se déplacer dans cette API ou d'un projet basé sur le Web, puisque ce planificateur est appelé par l'équipe de l'API Web & & autre (s).

Merci.

+1

Si HttpClient n'est pas disponible, puis assurez-vous que vous êtes référencé dans la bibliothèque de classes appropriée et que vous avez la bonne instruction 'using namespace' en haut de votre classe. Appeler un service d'une bibliothèque de classes ne fait aucune différence en l'appelant depuis n'importe quel autre endroit. – mason

Répondre

1

Si ce n'est pas disponible dans votre classe, il y a des chances que vous ayez juste besoin d'ajouter une référence en haut ou de changer un peu de ligne.

Remplacer new HttpClient(); par new System.Net.Http.HttpClient();. Cela devrait travailler ou Visual Studio (si c'est ce que vous utilisez) devrait vous dire des corrections potentielles :)

Hope this helps, sinon réponse et je pourrais être en mesure d'identifier votre problème suivant :)

+0

'HttpClient' n'est pas disponible dans le projet de type bibliothèque de classes. –

+1

N'êtes-vous pas en mesure d'ajouter le paquet nuget pour cela? – Jaxi

+0

Je peux l'obtenir de https://www.nuget.org/packages/microsoft.net.http/. Mais êtes-vous sûr que c'est la bonne façon de faire? Depuis que je ne suis pas .. Merci –