اختبار واجهة برمجة تطبيقات REST لتكوين تطبيق Azure باستخدام Fiddler

لاختبار واجهة برمجة تطبيقات REST باستخدام Fiddler، ستحتاج إلى تضمين رؤوس HTTP المطلوبة للمصادقة في طلباتك. فيما يلي كيفية تكوين Fiddler لاختبار واجهة برمجة تطبيقات REST ، وإنشاء رؤوس المصادقة تلقائيا:

  1. تأكد من أن TLS 1.2 هو بروتوكول مسموح به:

    1. انتقل إلى ToolsOptionsHTTPS>>).
    2. تأكد من التحقق من فك تشفير حركة مرور HTTPS .
    3. في قائمة البروتوكولات، أضف tls1.2 إذا لم يكن موجودا.
  2. افتح محرر البرامج النصية Fiddler أو اضغط على Ctrl-R داخل Fiddler

  3. إضافة التعليمة البرمجية التالية داخل Handlers الفصل قبل الدالة OnBeforeRequest

    static function SignRequest(oSession: Session, credential: String, secret: String) {
        var utcNow = DateTimeOffset.UtcNow.ToString("r", System.Globalization.DateTimeFormatInfo.InvariantInfo);
        var contentHash = ComputeSHA256Hash(oSession.RequestBody);
        var stringToSign = oSession.RequestMethod.ToUpperInvariant() + "\n" + oSession.PathAndQuery + "\n" + utcNow +";" + oSession.hostname + ";" + contentHash;
        var signature = ComputeHMACHash(secret, stringToSign);
    
        oSession.oRequest.headers["x-ms-date"] = utcNow;
        oSession.oRequest.headers["x-ms-content-sha256"] = contentHash;
        oSession.oRequest.headers["Authorization"] = "HMAC-SHA256 Credential=" + credential + "&SignedHeaders=x-ms-date;host;x-ms-content-sha256&Signature=" + signature;
    }
    
    static function ComputeSHA256Hash(content: Byte[]) {
        var sha256 = System.Security.Cryptography.SHA256.Create();
        try {
            return Convert.ToBase64String(sha256.ComputeHash(content));
        }
        finally {
            sha256.Dispose();
        }
    }
    
    static function ComputeHMACHash(secret: String, content: String) {
        var hmac = new System.Security.Cryptography.HMACSHA256(Convert.FromBase64String(secret));
        try {
            return Convert.ToBase64String(hmac.ComputeHash(System.Text.Encoding.ASCII.GetBytes(content)));
        }
        finally {
            hmac.Dispose();
        }
    }
    
  4. قم بإضافة التعليمة البرمجية التالية في نهاية الدالة OnBeforeRequest . قم بتحديث مفتاح الوصول كما هو موضح في تعليق TODO.

    if (oSession.isFlagSet(SessionFlags.RequestGeneratedByFiddler) &&
        oSession.hostname.EndsWith(".azconfig.io", StringComparison.OrdinalIgnoreCase)) {
    
        // TODO: Replace the following placeholders with your access key
        var credential = "<Credential>"; // Id
        var secret = "<Secret>"; // Value
    
        SignRequest(oSession, credential, secret);
    }
    
  5. استخدم مؤلف الكمان لإنشاء طلب وإرساله