سؤال

وأود أن عرض حجم كل طلب في قائمة دورة العابث. ما حاولت حتى الآن، وكان لإضافة عمود مخصص في ملف CustomRules.js:

public static BindUIColumn("RequestSize")
function CalcMethodCol(oS: Session)
{
  if (null != oS.requestBodyBytes)
    return oS.requestBodyBytes.Length; //this is the relevant line
  else
    return "?";
}

ولكن هذا يؤدي إلى خطأ عندما العابث يحاول تحميل البرنامج النصي.

إذا قمت بتغيير الخط مع تعليق على هذا:

    return typeof(oS.requestBodyBytes.Length);

وبعد ذلك يعرض عازف الكمان 'رقم' في العمود RequestSize. وبسبب ذلك أعتقد أنني لست بعيدا جدا عن ما أحاول تحقيقه. أنا فقط لا يمكن معرفة كيفية عرض حجم الحقل requestBodyBytes.

وأي تلميحات ما أفعله خطأ أو ما هو مفقود؟

هل كانت مفيدة؟

المحلول

على تحديث في الإصدارات الحديثة من عازف الكمان، يمكنك ببساطة انقر بزر الماوس الأيمن فوق رؤوس الأعمدة، واختيار "تخصيص الأعمدة" وإضافة Miscellaneous> العمود Request Size.


واعتمادا على الاحتياجات الخاصة بك، قد لا يكون حقا ما تريد القيام به، لأنه لا يظهر الا في طول الجسم الطلب، وأنه لا يتضمن حجم رؤوس.

وهنا نسخة محسنة:

public  static  BindUIColumn("Req-Size")
function  CalcReqSize(oS:  Session){        
  if (null == oS.oRequest) return String.Empty;
  var cBytesOut: int = 0;

  if (null != oS.requestBodyBytes) cBytesOut += oS.requestBodyBytes.LongLength; 
  if ((null != oS.oRequest) && (null != oS.oRequest.headers)) cBytesOut += 
  oS.oRequest.headers.ByteCount() ; 
  return cBytesOut.ToString();
}

نصائح أخرى

وOK، كنت أعرف أنني لم أكن بعيدا. وهنا يكمن الجواب على سؤالي.

وهذا السيناريو، وعندما وضعت في CustomRules.js، ستطبع طول / حجم طلب HTTP في العابث:

public  static  BindUIColumn("Req-Length")
function  CalcMethodCol(oS:  Session){
    if (null != oS.oRequest)
            return oS.requestBodyBytes.LongLength.ToString();
        else
            return String.Empty;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top