.NET- এ "HTTPRequest.RequestType" এবং "WebRequest.Method" মানগুলির জন্য ধ্রুবকটি কোথায়?


92

আমার চেক করা দরকার RequestTypeHttpRequest ASP.NET (বা WebRequest.Method) এ একটি । আমি জানি যে আমি অনুরোধ প্রকারের জন্য কেবল " POST" বা " GET" স্ট্রিংয়ের মানগুলি ব্যবহার করতে পারি , তবে আমি শপথ করে বলতে পারি যে .NET এর কোনও শ্রেণিতে কোথাও ধ্রুবক রয়েছে যা মানগুলি ধারণ করে।

কৌতূহলের বাইরে আমি ভাবছিলাম যে এই স্ট্রিং ধ্রুবকটি কোন শ্রেণীর জন্য GETএবং কোনটি যদি জানতPOST online আমি অনলাইনে অনুসন্ধানের চেষ্টা করেছি তবে আমার ভাগ্য নেই, তাই আমি ভেবেছিলাম এখানে জিজ্ঞাসা করব।

উত্তর:


121
System.Net.WebRequestMethods.Http
    .Connect = "CONNECT"
    .Get = "GET"
    .Head = "HEAD"
    .MkCol = "MKCOL"
    .Post = "POST"
    .Put = "PUT"

শেষ পর্যন্ত, যদিও; যেহেতু constকলারগুলিতে এক্সপ্রেশনগুলি পোড়ানো হয়, এটি টাইপোর ঝুঁকি ছাড়াই "জিইটি" ইত্যাদি ব্যবহারের সাথে সমান।


22
আকর্ষণীয়, কেন কোনও মোছার পদ্ধতি এবং "*" নেই?
— kuncevic.dev

9
এবং এটি বিকল্প এবং ট্র্যাক অনুপস্থিত।
— পল কুইকেনডাল

7
PATCHক্রিয়াও অনুপস্থিত।
— আরবিটি

42

এছাড়াও বিদ্যমান System.Net.Http.HttpMethodযা এনামের পরিবর্তে পরিবেশন করতে পারে। আপনি এগুলি তুলনা করতে পারেন aMethod == HttpMethod.Getইত্যাদি। স্ট্রিং পদ্ধতির নাম কল করতে যেমন HttpMethod.Get.Method।


6
এএসপি নেট নেটওয়ার্কেও কাজ করার সুবিধা রয়েছে
— সুপারজোজ

4
আমি কেবল ভাবছি যে তারা কেন স্ট্যাটিক পঠন ক্ষেত্রের পরিবর্তে এই ক্ষেত্রগুলিকে স্থির হিসাবে ঘোষণা করেন নি। ধ্রুবকগুলির সুবিধা হ'ল আপনি সেগুলি প্যারামিটার ডিফল্ট হিসাবে (যেমন void Request(HttpMethod method = HttpMethod.Get)) পাস করতে পারেন ।
— শিমি ওয়েটজ্যান্ডলার

@ শিমি ধ্রুবকগুলির অসুবিধা হ'ল তারা সরল প্রতিস্থাপনের মাধ্যমে সংকলন সময়ে রেফারেন্সিং অ্যাসেমব্লিতে বেকড হয়েছেন। এর অর্থ হ'ল যদি অ্যাসেম্বলিটি স্থিরদের সংজ্ঞা দেয় তাদের মান পরিবর্তন করে এবং প্রতিস্থাপন করা হয়, তবে কোনও রেফারেন্সিং অ্যাসেমব্লিগুলি মূল, কোনও ভুল, ধ্রুবক মান ধরে রাখে। এইচটিটিপি পদ্ধতিগুলি যে কোনও সময় পরিবর্তিত হবে তা কতটা সম্ভবত সম্ভাব্য, তবে এটি অন্য গল্প ...
— ইয়ান কেম্প

4
HttpMethod.Get.Methodএকটি সংকলন সময় ধ্রুবক নয় :( যেখানে System.Net.WebRequestMethods.Httpধ্রুবক রয়েছে
— পাইটর কুলা

4
সংকলন সময় স্থির প্রয়োজন তাদের সুবিধাগুলি বা অসুবিধা নির্বিশেষে অনিবার্য। উদাহরণস্বরূপ, কোনও পদ্ধতিতে স্বাক্ষরে ডিফল্ট পরামিতি। আমি যখন System.Net.WebRequestMethods ব্যবহার করতে পারি না, আমি সাধারণত এইচটিপিএমথোদ এর কনস্ট্রাক্টারে ব্যবহার করতে পারি তার স্ট্রিংগুলি দিয়ে এটি ঘিরে কাজ করি। অবশ্যই সমস্যাটি হ'ল তাদের ডকুমেন্টেশনগুলি পরিষ্কারভাবে বলে না যে কোনও খারাপ স্ট্রিংয়ের মান পাস করার পরে কী ঘটে তাই আপনার নিজের ঝুঁকিতে এই কৌশলটি ব্যবহার করুন, ডকস.মাইক্রোসফট
— জেসিকা পেনেল

17

এএসপি.এনইটি এমভিসি-তে তারা System.Web.Mvc.HttpVerbs এ রয়েছে । তবে এই এনাম মানগুলির মধ্যে যে কোনও একটি গ্রহণ করে এমন সমস্ত পদ্ধতির একটি পাঠ্য ওভাররাইডও রয়েছে, কারণ এইচটিটিপি ক্রিয়াগুলির কোনও সম্পূর্ণ সেট নেই, কেবল বর্তমানে সংজ্ঞায়িত মানগুলির একটি সেট রয়েছে ( এখানে এবং এখানে এবং এখানে দেখুন )।

আপনি এমন একটি সংখ্যা তৈরি করতে পারবেন না যা সমস্ত ক্রিয়াগুলিকে কভার করে, কারণ ক্রিয়াগুলি যুক্ত করার সম্ভাবনা রয়েছে, এবং গণিতে সংস্করণ সংক্রান্ত সমস্যা রয়েছে যা এইটিকে অবৈধ করে তোলে।


5

ইন ASP.NET কোর আপনি HTTP পদ্ধতি স্ট্রিং একটি সংগ্রহ পাবেন HttpMethods.cs অধীনে বর্গ Microsoft.AspNetCore.Httpনামস্থান।

এই শ্রেণীর এছাড়াও যেমন বুলিয়ান সাহায্যকারী উপলব্ধ করা হয় IsGet()বা IsPost()ভাল শব্দার্থবিদ্যা জন্য।

দয়া করে নোট করুন যে এই স্ট্রিংগুলি প্রকাশিত হয়েছে public static readonly stringএবং হিসাবে নয় constants।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.