HttPlistener - كيف يمكنني إرسال خطأ WebException HTTP 304 "غير معدل" إلى المتصفح؟
-
25-09-2019 - |
سؤال
كيف يمكنني تقليد خطأ WebException 304 مرة أخرى إلى المتصفح إذا كنت أستخدم httplistener؟
هذا هو أنني تلقيت طلبًا إلى httplistener الخاص بي ، ثم حصلت على httplistenercontext ، ثم من هذه النقطة كيف يمكنني التقليد/الترتيب للحصول على استجابة http "304 غير المعدلة" لإرسالها بشكل فعال إلى المتصفح عبر httplistenercontext.response؟
تعديل:
لقد جربت ما يلي ، ومع ذلك ، أحصل على خطأ في محاولة لنسخ WebException.status إلى httpwebropsonse.statuscode (يجب أن يكون رمز الحالة ثلاثة أرقام بالضبط). أي أفكار حول كيفية تصحيح هذه؟
catch (WebException ex)
{
listenerContext.Response.StatusCode = (int)ex.Status; //ERROR: The status code must be exactly three digits
listenerContext.Response.StatusDescription = ex.Message;
listenerContext.Response.Close();
شكرًا
المحلول
أعتقد أن لدي:
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
int statusCode = (int) ((HttpWebResponse) ex.Response).StatusCode;
listenerContext.Response.StatusCode = statusCode;
listenerContext.Response.StatusDescription = ex.Message;
log("WARNING", uri, "WebException/ProtocolError: " + ex.GetType() + " - " + ex.Message);
}
else
{
log("ERROR", uri, "WebException - " + ex.GetType() + " - " + ex.Message);
}
listenerContext.Response.Close();
}
لا تنتمي إلى StackOverflow