কি জাভাতে এইচটিটিপি রেসপন্স কোডগুলির জন্য একটি সম্পূর্ণ এনাম আছে?


267

আমি ভাবছি কিছু মানক জাভা শ্রেণীর লাইব্রেরিতে এনাম টাইপ রয়েছে কিনা যা বৈধ এইচটিটিপি রেসপন্স কোডগুলির জন্য প্রতীকী ধ্রুবককে সংজ্ঞায়িত করে। এটির সাথে সম্পর্কিত পূর্ণসংখ্যার মানগুলিতে / থেকে রূপান্তরকে সমর্থন করা উচিত।

আমি কিছু জাভা কোড ডিবাগ করছি যা javax.ws.rs.core.Response.Status ব্যবহার করে। এটি কাজ করে, তবে এটি বৈধ এইচটিটিপি প্রতিক্রিয়া কোডগুলির প্রায় অর্ধেক সংজ্ঞা দেয়।

উত্তর:


280

আমি মনে করি না যে এটি একটি জাভা শ্রেণীর সম্পূর্ণ যা সম্পূর্ণ; HttpURLConnectionমত বেশ কয়েকটি কোড অনুপস্থিত HTTP 100/Continue

অ্যাপাচি এইচটিপিপি কম্পোনেন্টগুলিতে একটি সম্পূর্ণ তালিকা রয়েছে, যদিও:
org.apache.http.HttpStatus( অ্যাপাচি এইচটিপিপি org.apache.commons.HttpClient.HttpStatusক্লায়েন্ট থেকে পরিবর্তিত হয়েছে, যা জীবনের শেষ প্রান্তে পৌঁছেছে )


5
"সম্পূর্ণ তালিকা" বলে কোনও জিনিস নেই, কারণ স্ট্যাটাস কোডগুলি হতে পারে এবং প্রসারিতও হতে পারে।
জুলিয়ান পুনরায়

16
@ জুলিয়ানআরেস্কে আমি মনে করি "মানদণ্ডের দ্বারা বর্ণিত সমস্ত কোডের সাথে সঙ্গতিপূর্ণ" মানে এখানে "সম্পূর্ণ" হওয়া উচিত।
জন Feminella

2
জন: "স্ট্যান্ডার্ড" স্ট্যাটাস কোডগুলি "সমস্ত" সংজ্ঞায়িত করে না। এজন্য একটি রেজিস্ট্রি আছে।
জুলিয়ান পুনরায়

1
iana.org/assignments/http-status-codes/http-status-codes.xml কোড সহ 100 টির একটি বড় তালিকা রয়েছে
গারিস এম সুয়েরো

1
@ ডোনাল: আবার, একটি ভাল তালিকা নয়। প্রাসঙ্গিক যা হ'ল আইএএনএ রেজিস্ট্রি।
জুলিয়ান রিশকে

66

javax.servlet.http.HttpServletResponseসার্লেলেট এপিআই থেকে ইন্টারফেসের intধ্রুবকগুলির নাম হিসাবে সমস্ত প্রতিক্রিয়া কোড রয়েছে SC_<description>Http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html দেখুন


3
এইচটিপিএস সার্লেটResponse আরএফসি 1945 এবং আরএফসি 2616 স্ট্যান্ডার্ডের অংশ সমর্থন করে, তবে এটি সমস্ত আরএফসি 2518 হারিয়েছে। আপনার যদি একটি সম্পূর্ণ তালিকা প্রয়োজন হয় তবে HTTP স্ট্যাটাসটি আমি যেমন বলেছি তা দেখুন।
জন Feminella

2
এইচটিপি সার্ভেলেটেস্পসও আরএফসি 2324
ডাইসকগ

সার্ভলেটের বাইরে যে কোনও কিছুতে চালিত HTTPServletResponse ব্যবহার করে বিভিন্ন সার্লেট খিলানগুলিতে ওভারল্যাপিং ক্লাসের কারণে হীরা নির্ভরতা সমস্যা দেখা দিতে পারে।
এলিয়োট রাস্টি হ্যারল্ড

51

ঠিক আছে, এইচটিটিপিআরএল সংযোগ শ্রেণিতে সঠিক সংখ্যার মানগুলির স্থিতিশীল ধ্রুবক রয়েছে


6
ধন্যবাদ! এটি কোনও বাহ্যিক নির্ভরতা ছাড়াই কাজ করে। java.net.HttpURLConnection.HTTP_BAD_REQUEST
কমোনাদ

ভাল যে এটি স্ট্যান্ডার্ড লাইব্রেরির অংশ তবে দুর্ভাগ্যক্রমে এটি অসম্পূর্ণ - উদাহরণস্বরূপ 400 পরিসরে এটি 415 এ
ছাড়িয়ে যায়

18

আপনি যদি স্প্রিং ব্যবহার করছেন, তবে 3.x রিলিজটিতে আপনার সন্ধানের মতো রয়েছে: http : //static.springs Source.org/spring/docs/3.0.x/api/org/springframework/http/HttpStatus.html


3
আমি যুক্ত করতে চাই যে স্প্রিংস org.springframework.http.HttpStatus ( docs.spring.io/spring/docs/current/javadoc-api/org/… ) এনাম , আমি লিঙ্কগুলির সাথে জাভা ডকুমেন্টেশন সরবরাহ করতে পারে এমন একমাত্র পাওয়া গেল প্রতিটি এনামে স্থিতি কোডের এবং তাদের ব্যবহারের সম্পূর্ণ তালিকাতে। আপনি যদি ইতিমধ্যে বসন্ত ব্যবহার করে থাকেন তবে এটি ব্যবহারের জন্য এটি গ্রন্থাগার হবে।
লাস্টমান্নরথ

2
এটা তোলে 100 এবং 418. দু: খের বিষয় আপনাকে কল করার আছে হয়েছে HttpStatus.XXX.value()int- এ জন্য।
ওয়েস্টার্নগুন

7

আপনি যদি নেটটি ব্যবহার করেন তবে আপনি এটি ব্যবহার করতে পারেন:


দুর্ভাগ্যক্রমে এটি কোনও এনাম যাতে অতএব ক্ষেত্রে বিবৃতিতে ব্যবহারযোগ্য নয় (যা আমাকে দুঃখ দেয়)
ফ্রেডেরিক রোথ

7

প্রত্যেকে আপনার প্রশ্নের "এনাম টাইপ" অংশটিকে উপেক্ষা করছে বলে মনে হচ্ছে।

যদিও আছে HTTP স্থিতি কোডগুলি কোন ক্যানোনিকাল উৎস সেখানে একটি সহজ উপায় যোগ কোনো অনুপস্থিত স্থিতি ধ্রুবক আপনার প্রদত্ত সেই প্রয়োজন javax.ws.rs.core.Response.Statusআপনার প্রকল্পের কোন অতিরিক্ত নির্ভরতা যোগ ছাড়াই।

javax.ws.rs.core.Response.Statusjavax.ws.rs.core.Response.StatusTypeইন্টারফেসের শুধুমাত্র একটি বাস্তবায়ন । আপনি যে স্ট্যাটাস কোডগুলি চান তার সংজ্ঞা সহ আপনার নিজের বাস্তবায়ন এনাম তৈরি করতে হবে।

Javax, জার্সি, ইত্যাদি কোর লাইব্রেরি লেখা হয় ইন্টারফেস StatusType না বাস্তবায়ন Status (অথবা তারা অবশ্যই উচিত হবে)। আপনার নতুন স্ট্যাটাস এনাম প্রয়োগ করার কারণে StatusTypeএটি যে কোনও জায়গায় ব্যবহার করা যেতে পারে আপনি javax.ws.rs.core.Response.Statusধ্রুবকটি ব্যবহার করবেন ।

কেবল মনে রাখবেন যে আপনার নিজের কোডটি StatusTypeইন্টারফেসেও লেখা উচিত । এটি আপনাকে "স্ট্যান্ডার্ড" এর পাশাপাশি আপনার নিজের উভয় স্ট্যাটাস কোড ব্যবহার করতে সক্ষম করবে।

"ইনফরমেশনাল 1XX" স্থিতি কোডগুলির জন্য সংজ্ঞায়িত ধ্রুবকগুলির সাথে একটি সাধারণ বাস্তবায়ন সহ এখানে একটি সংক্ষিপ্তসার রয়েছে: https://gist.github.com/avendasora/a5ed9acf6b1ee709a14a


5

Javax.servlet.http.HttpServletResponse ক্লাস ব্যবহার করুন

উদাহরণ:

javax.servlet.http.HttpServletResponse.SC_UNAUTHORIZED //401
javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR //500

4
ক্লায়েন্ট বিকাশের জন্য, কেবলমাত্র এই কোডগুলি বেছে নেওয়ার জন্য পুরো সার্লেট এপিআই অন্তর্ভুক্ত করা ভারী কাজ।
জেফ্রি ব্লাটম্যান

1
এটি কিছু ক্ষেত্রে ভারী হতে পারে তবে আমি এই ভাল উত্তরটি পেয়েছি এবং আমি একটি সার্লেট-ভিত্তিক ওয়েব অ্যাপ লিখছি যাতে এটি আমার পক্ষে ভাল।
আন্দ্রে রেনিয়া

2
একটি সদৃশ উত্তর, তিন বছর পরে পোস্ট করা? মুছে ফেলা উচিত।
zb226

4

1) কারণ পাঠ্য যদি আপনার কাছে কেবল কোড থাকে তবে আপনি এটি ব্যবহার করতে পারেন:

org.apache.http.impl.EnglishReasonPhraseCatalog.INSTANCE.getReason(httpCode,null)

httpCodeআপনি HTTP প্রতিক্রিয়া থেকে যে কারণ কোডটি পেয়েছেন তা কোথায় থাকবে।

বিশদের জন্য https://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/impl/EnglishReasonPrasseGlog.html দেখুন

2) কারণ কোডটি পেতে যদি আপনার কাছে কেবল টেক্সট থাকে তবে আপনি ব্যবহার করতে পারেন BasicHttpResponse

বিস্তারিত জানার জন্য এখানে দেখুন: https://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/message/BasicHttpResponse.html


2

রেস্টলেট স্থিতি ক্লাসটিও দেখুন:

http://www.restlet.org/documentation/1.1/api/org/restlet/data/Status.html


আবার; স্ট্যাটাস কোডগুলি এক্সটেনসিবল, সুতরাং কোনও "সম্পূর্ণ" তালিকা থাকতে পারে না, যতক্ষণ না এটি প্রতিবার সংশোধিত হয় আইএএনএ রেজিস্ট্রিতে নতুন স্ট্যাটাস কোড যুক্ত না করা হয় ( iana.org/assignments/http-status-codes )
জুলিয়ান রেশকে

0

এইচটিপিএস স্থিতি কোড ধ্রুবকগুলির জন্য সেরা সরবরাহকারী জেটির org.eclipse.jetty.http.HttpStatus বর্গ হতে পারে কারণ:

  • মাভেনে একটি জাভাডোক প্যাকেজ রয়েছে যা আপনি যদি ধ্রুবকটি সন্ধান করেন এবং কেবল নম্বরটি জানেন তবে গুরুত্বপূর্ণ -> কেবল এপিআই ডক্স পৃষ্ঠাটি খুলুন এবং নম্বরটি সন্ধান করুন
  • ধ্রুবকগুলির মধ্যে স্ট্যাটাস কোড নম্বরটি থাকে।

কেবলমাত্র আমি উন্নতি করব: আপনি কোডটি শুরু করার সাথে সাথে স্বয়ংক্রিয়ভাবে সমাপ্তি দেখার জন্য আরও দৃient় বিশ্বাসের জন্য পাঠ্য বর্ণনার সামনে স্থিতি কোড নম্বরটি রাখুন।


-1

আরেকটি বিকল্প হ'ল HttpStatusঅ্যাপাচি কমন্স-httpclient থেকে বর্গ ব্যবহার করা যা আপনাকে ধ্রুবক হিসাবে বিভিন্ন এইচটিপিপি স্ট্যাটাস সরবরাহ করে।

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