কীভাবে http.ResponseWriter এ HTTP স্থিতি কোড সেট করবেন


102

আমি কীভাবে কোনও HTTP স্থিতি কোড সেট করব http.ResponseWriter(উদাহরণস্বরূপ 500 বা 403)?

আমি দেখতে পাচ্ছি যে অনুরোধগুলিতে সাধারণত 200 এর সাথে একটি স্ট্যাটাস কোড থাকে।

উত্তর:


172

ব্যবহার http.ResponseWriter.WriteHeader। ডকুমেন্টেশন থেকে:

WritHeader স্থিতি কোড সহ একটি HTTP প্রতিক্রিয়া শিরোনাম প্রেরণ করে। যদি WritHeader কে স্পষ্টভাবে না বলা হয়, তবে লিখনের প্রথম কলটি একটি অন্তর্নিহিত WritHeader (http.StatusOK) ট্রিগার করবে। সুতরাং WritHeader এ স্পষ্ট কলগুলি ত্রুটি কোডগুলি প্রেরণে ব্যবহৃত হয়।

উদাহরণ:

func ServeHTTP(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusInternalServerError)
    w.Write([]byte("500 - Something bad happened!"))
}

মিডলওয়্যার সংলগ্নে আপনি কীভাবে শিরোনামটি অ্যাক্সেস করতে পারেন। res.Header ()। get ('StatusCode') শূন্য করে।
কৈলাশ যোগেশ্বর

98

এছাড়া WriteHeader(int)আপনি সাহায্যকারী পদ্ধতি ব্যবহার করতে পারেন http.Error , উদাহরণস্বরূপ:

func yourFuncHandler(w http.ResponseWriter, r *http.Request) {

    http.Error(w, "my own error message", http.StatusForbidden)

    // or using the default message error

    http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound)
}

http.Error () এবং http.StatusText () পদ্ধতিগুলি আপনার বন্ধু


কেন জানি না, তবে কেবলমাত্র এই উত্তরটি আমার জন্য কাজ করে, "WritHeader (int)" নয়, তাই অনেক অনেক ধন্যবাদ!
উইশমাস্টার

32
w.WriteHeader(http.StatusInternalServerError)
w.WriteHeader(http.StatusForbidden)

এখানে সম্পূর্ণ তালিকা


4
এটি লগ হয়http: superfluous response.WriteHeader call
পঞ্চিচোর

4
আরে @ পঞ্চিকোর ক্ষেত্রে যদি এটি পূর্ববর্তী দৃষ্টিতে সুস্পষ্ট না হয় - এবং সমাপ্তির জন্য - আপনি কেবল এই জাতীয় একটি শিরোনাম পাঠাতে পারেন, দ্বিতীয়টি ছিল অন্যরকম উদাহরণ। সেই সতর্কতার মধ্যে "অতিমাত্রায়" কেবলমাত্র প্রথম পাঠানো উচিত বলে উল্লেখ করে states
অ্যাডাম জ্যাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.