2017-05-04 13 views
4

Quartzライブラリを使用してC#に書いています。私の要件は、ビジネス条件が満たされている場合、私はAppleサーバーに電話する必要があります。クラスライブラリCのクラスからhttp呼び出しを行うには?

これは私のスケジューラがどのように見えるかです: - この要件に対処するために、どのように

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); 
    } 
} 

注: -
私はこのスケジューラは、Web & APIチーム(s)は、他の&から呼び出されるので、APIやWebベースのプロジェクトにこれを移動することを好むないでしょう。

ありがとうございました。

+1

HttpClientが利用できない場合は、適切なクラスライブラリを参照していることを確認し、クラスの先頭に正しいusing namespaceステートメントを入れてください。クラスライブラリからサービスを呼び出すことは、他の場所から呼び出すことと何の違いもありません。 – mason

答えて

1

クラスで使用できない場合は、上部に参照を追加するか、行を少し変更する必要があります。

new HttpClient();new System.Net.Http.HttpClient();に置き換えます。これは場合は、仕事やVisual Studioのいずれかのはず(それはあなたが使用しているものだ場合)あなたの潜在的な修正を教えてください:)返信と私はあなたの次の問題を特定することができるかもしれない場合、これは、役立ちます

希望:)

+0

'HttpClient'はクラスライブラリ型プロジェクトでは利用できません。 –

+1

ナゲットパッケージを追加できませんか? – Jaxi

+0

https://www.nuget.org/packages/microsoft.net.http/から入手できます。しかし、これは正しい方法ですか?私はそうではありません。ありがとう –

関連する問題