1

API ドキュメントでこのセクションを参照しましたが、API 経由で送信しているリクエストが正しいかどうかわかりません。これは私のコードがどのように見えるかです:

public class CfListInvalidation
{
    string accessKeyID = ConfigurationManager.AppSettings["awsAccessID"];
    string secretAccessKeyID = ConfigurationManager.AppSettings["awsSecretAnswer"];
    string distributionId = ConfigurationManager.AppSettings["distributionId"];
    AmazonCloudFront client;

    public void SendCommand()
    {

        Console.WriteLine("Connecting to Amazon Cloud Front...");   

        using (client = AWSClientFactory.CreateAmazonCloudFrontClient(accessKeyID, secretAccessKeyID))
        {
            ListInvalidationsResult result = new ListInvalidationsResult();

            IAsyncResult r = client.BeginListInvalidations(new ListInvalidationsRequest
            {
                DistributionId = distributionId,                                        
            }, new AsyncCallback(CfListInvalidation.CompleteRead), result );                

        }
    }

    static void CompleteRead(IAsyncResult result)
    {
        ListInvalidationsResult r = result.AsyncState as ListInvalidationsResult;

        if (r != null && r.InvalidationList != null)
        {
            Console.WriteLine("listing items..");

            foreach (InvalidationSummary s in r.InvalidationList.Items)
            {
                Console.WriteLine(string.Format("ID: {0} - Status: {1}", s.Id, s.Status));
            }
        }

        else {
            Console.WriteLine("No Items Found");
        }
    }
}

私は何か間違ったことをしていますか?

4

1 に答える 1

1

Begin* メソッドを使用する場合、対応する End* メソッドを呼び出して要求を完了し、結果オブジェクトを取得する必要があります。いくつかの例については、このガイドをご覧ください。

基本的なアプローチを説明するガイドの簡単なサンプルを次に示します。

// Begin method
client.BeginPutObject(request, CallbackWithClient, client);

// Callback
public static void CallbackWithClient(IAsyncResult asyncResult)
{
  AmazonS3Client s3Client = (AmazonS3Client) asyncResult.AsyncState;
  PutObjectResponse response = s3Client.EndPutObject(asyncResult);

  // Process the response
}
于 2013-07-03T07:20:05.690 に答える