CodeGym/Java Course/মডিউল 3/HttpRequest দিয়ে একটি অনুরোধ করা

HttpRequest দিয়ে একটি অনুরোধ করা

বিদ্যমান

পদ্ধতি newBuilder(), build()

HttpRequest ক্লাসটি একটি http-অনুরোধ বর্ণনা করতে ব্যবহৃত হয়, যা এর নাম থেকে বোঝা সহজ। এই বস্তুটি নিজে থেকে কিছুই করে না, এটিতে শুধু http অনুরোধ সম্পর্কে বিভিন্ন তথ্য রয়েছে। অতএব, আপনি সম্ভবত ইতিমধ্যে অনুমান করেছেন, বিল্ডার টেমপ্লেটটি এটি তৈরি করতেও ব্যবহৃত হয়।

HttpRequest request = HttpRequest.newBuilder()
	.method1()
	.method2()
	.methodN()
    .build();

যেখানে newBuilder() এবং build() পদ্ধতিতে কল করার মধ্যে আপনাকে একটি বস্তু তৈরি করার জন্য সমস্ত পদ্ধতিতে কল করতে হবেHttp অনুরোধ.

একটি সহজ অনুরোধের একটি উদাহরণ এই মত দেখায়:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(“http://codegym.cc”))
    .build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());

আপনি অফিসিয়াল ডকুমেন্টেশনের লিঙ্কে HttpRequest ক্লাসের সমস্ত পদ্ধতি খুঁজে পেতে পারেন ।

এবং তারপরে আমরা তাদের মধ্যে সবচেয়ে জনপ্রিয় বিশ্লেষণ করব।

uri() পদ্ধতি

uri() পদ্ধতি ব্যবহার করে , আপনি URI (বা URL) সেট করতে পারেন যেখানে http অনুরোধ পাঠানো হবে। উদাহরণ:

HttpRequest request = HttpRequest.newBuilder()
    .uri( URI.create(“http://codegym.cc”) )
    .build();

যাইহোক, আপনি সরাসরি newBuilder() পদ্ধতিতে URI পাস করে এই কোডটিকে একটু ছোট করতে পারেন :

HttpRequest request = HttpRequest.newBuilder( URI.create(“http://codegym.cc”) ).build();

গুরুত্বপূর্ণ ! একটি URI দুটি উপায়ে তৈরি করা যেতে পারে:

  • newURI(স্ট্রিং)
  • URI.create(স্ট্রিং)

দ্বিতীয় উপায় পছন্দনীয়। প্রথম উপায়, দুর্ভাগ্যবশত, খুব ভালো নয়, কারণ URI কনস্ট্রাক্টরকে সর্বজনীন URI (স্ট্রিং str) URISyntaxException থ্রো হিসাবে ঘোষণা করা হয়েছে , এবং URISyntaxException একটি চেক করা ব্যতিক্রম।

পদ্ধতি GET(), POST(), PUT(), DELETE()

আপনি নিম্নলিখিত পদ্ধতি ব্যবহার করে http অনুরোধ পদ্ধতি সেট করতে পারেন:

  • পাওয়া()
  • পোস্ট()
  • PUT()
  • মুছে ফেলা()

এখানে একটি সাধারণ GET অনুরোধটি দেখতে কেমন হবে:

HttpRequest request = HttpRequest.newBuilder()
  .uri(new URI("https://codegym.cc"))
  .GET()
  .build();

সংস্করণ() পদ্ধতি

আপনি HTTP প্রোটোকল সংস্করণ সেট করতে পারেন। শুধুমাত্র 2 বিকল্প আছে:

  • HttpClient.Version.HTTP_1_1
  • HttpClient.Version.HTTP_2

ধরা যাক আপনি HTTP/2 প্রোটোকল ব্যবহার করে একটি অনুরোধ তৈরি করতে চান, তারপর আপনাকে লিখতে হবে:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .version( HttpClient.Version.HTTP_2 )
   .GET()
   .build();

খুব সহজ, তাই না? :)

timeout() পদ্ধতি

আপনি ক্যোয়ারী কার্যকর করার সময়ও সেট করতে পারেন। যদি এটি পাস হয় এবং অনুরোধটি কখনই সম্পূর্ণ না হয়, একটি HttpTimeoutException নিক্ষেপ করা হবে ।

সময় নিজেই বস্তু ব্যবহার করে সেট করা হয়সময়কালJava DateTime API থেকে। উদাহরণ:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .timeout( Duration.of(5, SECONDS) )
   .GET()
   .build();

এই পদ্ধতির উপস্থিতি দেখায় যে HttpClient এবং HttpRequest ক্লাসগুলি বিভিন্ন ধরনের কাজ করতে পারে। কল্পনা করুন যে আপনি একটি অনুরোধ সম্পাদন করছেন, এবং নেটওয়ার্কে কিছু ঘটেছে এবং এটি 30 সেকেন্ড স্থায়ী হয়েছিল। অবিলম্বে একটি ব্যতিক্রম গ্রহণ করা এবং সঠিকভাবে প্রতিক্রিয়া জানানো অনেক বেশি কার্যকর।

হেডার() পদ্ধতি

আপনি যেকোনো অনুরোধে যেকোনো সংখ্যক হেডার যোগ করতে পারেন। এবং এটি অন্য কিছুর মতোই সহজ। এর জন্য একটি বিশেষ পদ্ধতি আছে - header() । উদাহরণ:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .header("name1", "value1")
   .header("name2", "value2")
   .GET()
   .build();

একসাথে অনেক শিরোনাম সেট করার আরেকটি বিকল্প উপায় আছে। এটি কার্যকর হতে পারে যদি, উদাহরণস্বরূপ, আপনি শিরোনামগুলির একটি তালিকাকে একটি অ্যারেতে রূপান্তর করেন:

HttpRequest request = HttpRequest.newBuilder()
   .uri(new URI("https://codegym.cc"))
   .headers("name1", "value1", "name2", "value2")
   .GET()
   .build();

প্রাথমিক সবকিছুই সহজ।

মন্তব্য
  • জনপ্রিয়
  • নতুন
  • পুরানো
মন্তব্য লেখার জন্য তোমাকে অবশ্যই সাইন ইন করতে হবে
এই পাতায় এখনও কোনো মন্তব্য নেই