আপনি কীভাবে জাভার জন্য একটি REST ক্লায়েন্ট তৈরি করবেন? [বন্ধ]


248

জেএসআর 311 এবং এর বাস্তবায়নগুলির সাথে আমাদের কাছে REST এর মাধ্যমে জাভা অবজেক্টগুলি প্রকাশ করার জন্য একটি শক্তিশালী স্ট্যান্ডার্ড রয়েছে। তবে ক্লায়েন্টের পক্ষ থেকে মনে হচ্ছে এমন কিছু অনুপস্থিত যা এসওএপি-র জন্য অ্যাপাচি অক্ষের সাথে তুলনীয় - এমন কিছু যা ওয়েব পরিষেবাটি আড়াল করে এবং জাভা অবজেক্টগুলিতে স্বচ্ছভাবে ডেটা মার্শাল করে।

আপনি কীভাবে জাভা রেস্টস্টুল ক্লায়েন্ট তৈরি করবেন? HTTP সংযোগ এবং ফলাফলের ম্যানুয়াল বিশ্লেষণ ব্যবহার করছেন? বা যেমন জার্সি বা অ্যাপাচি সিএক্সআর জন্য বিশেষায়িত ক্লায়েন্ট?


শুধু পাওয়া এ্যাপাচি চোখ পিটপিট করা এ্যাপাচি ইনকিউবেটর হবে। REST সার্ভার এবং ক্লায়েন্ট তৈরি করার জন্য একটি আকর্ষণীয় প্রকল্প হতে পারে।
ইয়াবা

2
এটি পরীক্ষা করে দেখুন: igorpolevoy.blogspot.com/2011/01/java-rest-with-ease.html ধন্যবাদ
আইগার

[বিশ্রাম] ( কোড . google.com/p/resting ) দেখুন। এটি প্রতিশ্রুতি দেয় যে REST পরিষেবাদি চালু করা এবং XML / JSON / YAML প্রতিক্রিয়া থেকে এক ধাপে অবজেক্টের তালিকা তৈরি করা।
নীল

বিশ্রামে POST অনুরোধগুলির সাথে সমস্যা রয়েছে।
রায়ানব্রেডি

2
আপনি এটি খুব সহজ পদ্ধতিতে পুনঃচিকিত্সা (Jboss দ্বারা) সহ করতে পারেন। আপনি যদি শুরু করার দিকনির্দেশনা চান তবে জাভা রেস্ট ক্লায়েন্ট কীভাবে বিকাশ করা যায় সে সম্পর্কে আমি একটি ব্লগ পোস্ট লিখেছিলাম । যাইহোক, জাভাতে শত শত বিকল্প রয়েছে।
গাইডো

উত্তর:


205

এটি একটি পুরানো প্রশ্ন (২০০৮) তাই এখনকার চেয়ে এখন আরও অনেক বিকল্প রয়েছে:

আপডেট (প্রকল্পগুলি এখনও 2020 এ সক্রিয়):

  • অ্যাপাচি এইচটিটিপি উপাদান (৪.২) সাবলীল অ্যাডাপ্টার - জেডিকে জন্য প্রাথমিক প্রতিস্থাপন, এই তালিকার আরও বেশ কয়েকটি পরীক্ষার্থীর দ্বারা ব্যবহৃত by পুরানো কমন্স এইচটিটিপি ক্লায়েন্ট 3 এর চেয়ে ভাল এবং আপনার নিজের আরএসটি ক্লায়েন্ট তৈরির জন্য ব্যবহার করা সহজ। জেএসন পার্সিং সমর্থনের জন্য আপনাকে জ্যাকসনের মতো কিছু ব্যবহার করতে হবেএবংজার্সি / জ্যাকস-আরএস রেস্ট ক্লায়েন্টের অনুরূপ রিসোর্স ইউআরআই তৈরি করতে আপনি HTTP উপাদানগুলি ইউআরআইবিল্ডার ব্যবহার করতে পারেন। এইচটিটিপি উপাদানগুলিও এনআইওকে সমর্থন করে তবে আমি সন্দেহ করি যে আপনি আরআইএসটি-র সংক্ষিপ্ত অনুরোধের চেয়ে বিআইওর চেয়ে ভাল পারফরম্যান্স পাবেন। অ্যাপাচি এইচটিপিপি কম্পোনেন্টস 5 টিতে HTTP / 2 সমর্থন রয়েছে।
  • OkHttp - জেডিকে জন্য প্রাথমিক প্রতিস্থাপন, এই তালিকার আরও বেশ কয়েকটি পরীক্ষার্থীর দ্বারা ব্যবহৃত এইচটিপি উপাদানগুলির অনুরূপ। আরও নতুন এইচটিটিপি প্রোটোকল (এসপিডিওয়াই এবং এইচটিটিপি 2) সমর্থন করে। অ্যান্ড্রয়েডে কাজ করে। দুর্ভাগ্যক্রমে এটি সত্যিকারের চুল্লি-লুপ ভিত্তিক অ্যাসিঙ্ক বিকল্পটি সরবরাহ করে না (উপরে নীং এবং এইচটিটিপি উপাদান দেখুন)। তবে আপনি যদি নতুন এইচটিটিপি 2 প্রোটোকল ব্যবহার করেন তবে এটি কোনও সমস্যা কম (সংযোগ গণনাটি সমস্যা বলে ধরে নেওয়া)।
  • নিং অ্যাসিঙ্ক-http-ক্লায়েন্ট - NIO সমর্থন সরবরাহ করে। পূর্বে সোনাটাইপ দ্বারা Async-HTTP- ক্লায়েন্ট হিসাবে পরিচিত।
  • নিম্ন স্তরের HTTP ক্লায়েন্টের জন্য ওষুধযুক্ত র‍্যাপার (ওখটিপিপি, অ্যাপাচি HTTP সামগ্রী)। কিছু জার্সি এবং সিএক্সএফ এক্সটেনশনের অনুরূপ ইন্টারফেস স্টাবের উপর ভিত্তি করে ক্লায়েন্টগুলি স্বয়ংক্রিয়ভাবে তৈরি করে। শক্তিশালী বসন্ত সংহত।
  • রিট্রোফিট - নিম্ন স্তরের HTTP ক্লায়েন্টগুলির জন্য মোড়ক (ওখিটপি)। কিছু জার্সি এবং সিএক্সএফ এক্সটেনশনের অনুরূপ ইন্টারফেস স্টাবের উপর ভিত্তি করে ক্লায়েন্টগুলি স্বয়ংক্রিয়ভাবে তৈরি করে।
  • ভলি JDK HTTP ক্লায়েন্টের জন্য মোড়কের Google দ্বারা
  • jdk HTTP ক্লায়েন্টের জন্য গুগল- এইচপি র‌্যাপার, বা গুগলের দ্বারা অ্যাপাচি HTTP সামগ্রী
  • Jdk HTTP ক্লায়েন্টের জন্য অবিচ্ছিন্ন মোড়ক, কং দ্বারা
  • জেডিএস এইচপি ক্লায়েন্টের জন্য পুনর্নির্দেশ জাকার্তা ইই র‍্যাপার, জবিএস দ্বারা, জবিএস ফ্রেমওয়ার্কের অংশ
  • জেবিবি-এইচপি র‌্যাপার অ্যাপাচি httpcomp উপাদানগুলির জন্য, জেসিবি সংগ্রহের অংশ
  • অ্যাপাচি HTTP উপাদানগুলির জন্য পুনরুদ্ধার মোড়ানো, পুনরায় সেট ফ্রেমওয়ার্কের অংশ
  • সহজ পরীক্ষার জন্য জোর দিয়ে বিশ্রামের আশ্বাসযুক্ত মোড়ক

HTTP / REST ক্লায়েন্টদের বাছাই করার বিষয়ে একটি সতর্কতা। আপনার ফ্রেমওয়ার্ক স্ট্যাকটি এইচটিটিপি ক্লায়েন্টের জন্য কী ব্যবহার করছে, এটি কীভাবে থ্রেডিং করে, এবং যদি এটি সরবরাহ করে তবে আদর্শভাবে একই ক্লায়েন্টটি ব্যবহার করবেন কিনা তা নিশ্চিত করে দেখুন। এটি হ'ল যদি আপনি ভার্ট.এক্স বা প্লে এর মতো কিছু ব্যবহার করেন আপনি ফ্রেমওয়ার্কটি যে বাস বা চুল্লী লুপ সরবরাহ করেন তাতে অংশ নিতে এর ব্যাকিং ক্লায়েন্টকে ব্যবহার করার চেষ্টা করতে পারেন ... অন্যথায় সম্ভবত আকর্ষণীয় থ্রেডিং সমস্যার জন্য প্রস্তুত থাকুন be


1
দুর্ভাগ্যক্রমে জার্সি ক্লায়েন্ট
জেডিকে

3
Unirest ব্যবহার করা খুব সহজ তবে এর স্ট্যাটিক ডিজাইনটি ভাগ করা এবং সার্ভার পরিবেশে এটি ব্যবহারের অযোগ্য করে তোলে।
বেকস

9
সংক্রান্ত unirest মন্তব্য, আমি যোগ করতে এটি বর্তমানে (2016 শেষে) যেন এই প্রকল্পের আর রক্ষা করা হয় দেখায় চাই। এমনকি এমন একটি সমস্যা খোলা আছে যা নতুন রক্ষণাবেক্ষণকারীকে জিজ্ঞাসা করবে।
ওয়েজেনমিক

4
যারা ইউনিরেস্ট পছন্দ করেন তাদের জন্য আমি এর একটি কাঁটা পেয়েছি যা বর্তমানে সক্রিয়ভাবে রক্ষণাবেক্ষণ / আপডেট করা হচ্ছে।
জোশ

3
উত্তরটি কোনও সম্প্রদায়ের উইকিতে পরিণত করা ভাল
লাগবে

72

আমি যেমন এই থ্রেডে উল্লেখ করেছি আমি জার্সি ব্যবহার করি যা জ্যাক্স-আরএস প্রয়োগ করে এবং একটি দুর্দান্ত আরএসইএস ক্লায়েন্ট নিয়ে আসে। সুন্দর জিনিসটি হল আপনি যদি JAX-RS ব্যবহার করে আপনার বিশ্রামপ্রাপ্ত সংস্থানগুলি প্রয়োগ করেন তবে জার্সি ক্লায়েন্ট সত্তা সরবরাহকারীদের যেমন জ্যাকসবি / এক্সএমএল / জেএসএন / পরমাণুর জন্য আবার ব্যবহার করতে পারে - যাতে আপনি সার্ভারের পাশের একই জিনিসগুলিকে পুনরায় ব্যবহার করতে পারেন ক্লায়েন্ট সাইড ইউনিট পরীক্ষা ব্যবহার করুন।

উদাহরণ হিসেবে বলা যায় এখানে একটি ইউনিট পরীক্ষা ক্ষেত্রে দেখা যায় থেকে অ্যাপাচি উটের প্রকল্পের যা (JAXB বস্তুর এন্ডপয়েন্ট ব্যবহার করে) একটি RESTful সম্পদ থেকে এক্সএমএল প্লেলোডগুলি আপ দেখায়। এই বেস শ্রেণিতে সংস্থান (ইউরি) পদ্ধতিটি সংজ্ঞায়িত করা হয়েছে যা কেবল জার্সি ক্লায়েন্ট এপিআই ব্যবহার করে।

যেমন

    clientConfig = new DefaultClientConfig();
    client = Client.create(clientConfig);

    resource = client.resource("http://localhost:8080");
    // lets get the XML as a String
    String text = resource("foo").accept("application/xml").get(String.class);        

বিটিডাব্লু আমি আশা করি যে জ্যাকস-আরএসের ভবিষ্যতের সংস্করণটি জার্সির লাইনের সাথে একটি দুর্দান্ত ক্লায়েন্ট সাইড এপিআই যুক্ত করবে


কোনও পদ্ধতি আছে যেখানে আমরা ক্লায়েন্টারোসোর্সগুলিতে আরইএসটি পরিষেবা সার্ভারের তালিকা উল্লেখ করতে পারি, যদি সার্ভারটি নিচে থাকে তবে পরবর্তী সার্ভারটি চেষ্টা করে দেখুন?
Njax3SmmM2x2a0Zf7Hpd

1
কেবলমাত্র একটি আপডেট, তবে জেমসের 'বিটিডাব্লু' মন্তব্যটি সম্বোধনের জন্য, জ্যাকস-আরএস ২.০ এর নতুন সংস্করণটিতে একটি ক্লায়েন্ট-সাইড এপিআই থাকবে: ইনকিউকিউ
নিক ক্লাউয়ার

65

আপনি স্ট্যান্ডার্ড জাভা এসই এপিআই ব্যবহার করতে পারেন:

private void updateCustomer(Customer customer) { 
    try { 
        URL url = new URL("http://www.example.com/customers"); 
        HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
        connection.setDoOutput(true); 
        connection.setInstanceFollowRedirects(false); 
        connection.setRequestMethod("PUT"); 
        connection.setRequestProperty("Content-Type", "application/xml"); 

        OutputStream os = connection.getOutputStream(); 
        jaxbContext.createMarshaller().marshal(customer, os); 
        os.flush(); 

        connection.getResponseCode(); 
        connection.disconnect(); 
    } catch(Exception e) { 
        throw new RuntimeException(e); 
    } 
} 

অথবা আপনি জার্সির মতো জ্যাকস-আরএস বাস্তবায়ন দ্বারা সরবরাহিত আরআরএসটি ক্লায়েন্ট এপিআইগুলি ব্যবহার করতে পারেন। এই API গুলি ব্যবহার করা সহজ, তবে আপনার শ্রেণির পথে অতিরিক্ত জারগুলির প্রয়োজন।

WebResource resource = client.resource("http://www.example.com/customers"); 
ClientResponse response = resource.type("application/xml");).put(ClientResponse.class, "<customer>...</customer."); 
System.out.println(response); 

আরও তথ্যের জন্য দেখুন:


15
2018 এ , একটি সাধারণ রেস্ট কলের জন্য ১৩ টি লাইন, খুব বেশি শোনাচ্ছে ...
ক্লিন্ট ইস্টউড

1
একবার আপনি ত্রুটি পরিচালনা ও বিকল্পগুলি যুক্ত করলে, এটি সত্যিই উল্লেখযোগ্যভাবে আলাদা নয়। যদি এসই পদ্ধতিটি দীর্ঘ বলে মনে হয় তবে আপনি সর্বদা এটি একটি শ্রেণিতে গুটিয়ে রাখতে পারেন ...:> জ্যাকস-আরএস লাইব্রেরির দ্বন্দ্বগুলি ডিবাগ করার দু'দিন পরে পুরো এসপিআই দুঃস্বপ্ন এড়াতে আমি 5 টি অতিরিক্ত লাইন কোড দিয়ে সত্যই ঠিক করছি।
টেকহেইড

2
ক্লিন্টইস্টউড এই পোস্টটি 2010 সালে লিখেছিল
0dlylyo

13

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

// Make a GET request to "/lotto"
String json = get("/lotto").asString()
// Parse the JSON response
List<String> winnderIds = with(json).get("lotto.winners.winnerId");

// Make a POST request to "/shopping"
String xml = post("/shopping").andReturn().body().asString()
// Parse the XML
Node category = with(xml).get("shopping.category[0]");

আমি অন্যান্য প্রস্তাবিত সমাধানগুলির তুলনায় এটি আরও মার্জিত বলে মনে করেছি।
হার্ভ মুটোম্বো

9

আপনি সম্পূর্ণ ক্লায়েন্ট-পার্শ্ব ক্ষমতা সম্পন্ন রিসলেটও পরীক্ষা করতে পারেন , আরও REST ভিত্তিক নিম্ন-স্তরের লাইব্রেরি যেমন এইচটিপিআরএল সংযোগ বা অ্যাপাচি এইচটিটিপি ক্লায়েন্ট (যা আমরা সংযোজক হিসাবে লাভ করতে পারি)।

শুভেচ্ছা, জেরোম লুভেল


2
2019-10-24 পর্যন্ত, লিঙ্কটি প্রদান করে: 'রিসলেট প্ল্যাটফর্মটি জীবনের শেষ প্রান্তে পৌঁছেছে।'
হ্যানস ডেরাগন

6

আপনি রাপা চেষ্টা করতে পারেন । আমাদের সম্পর্কে আপনার মতামত জানতে দিন। এবং সমস্যাগুলি বা প্রত্যাশিত বৈশিষ্ট্যগুলি নির্বিঘ্নে বোধ করুন


1
রাপাতে একটি দুর্দান্ত ইন্টারফেস এবং কয়েকটি নির্ভরতা রয়েছে। .NET বিশ্বে রেস্টশার্পের একটি ভাল বিকল্প।
বিকেলে

প্রকল্পটি মৃত দেখাচ্ছে
tcruse

6

আমি আরও 2 টি বিকল্প চিহ্নিত করতে চাই:


1
রেস্টফুলি মৃত দেখাচ্ছে
truruus


5

আমি সম্প্রতি স্কোয়ার থেকে রেট্রোফিট লাইব্রেরিটি চেষ্টা করেছি , এটি দুর্দান্ত এবং আপনি খুব সহজেই আপনার বিশ্রামের API এ কল করতে পারেন। টীকাগুলি ভিত্তিক কনফিগারেশন আমাদের প্রচুর বয়লার প্লেট কোডিং থেকে মুক্তি দিতে সহায়তা করে।


4

আমি সমস্ত HTTP দিকের জিনিসগুলি পরিচালনা করতে অ্যাপাচি HTTPClient ব্যবহার করি।

আমি এক্সএমএল স্যাক্স পার্সারগুলি লিখি এক্সএমএল সামগ্রীর জন্য যা আপনার বস্তুর মডেলটিতে এক্সএমএলকে পার্স করে। আমি বিশ্বাস করি যে এক্সিস 2 এক্সএমএল -> মডেল পদ্ধতিগুলিও প্রকাশ করে (অক্ষ 1 এ অংশটি লুকিয়ে রেখেছিল, বিরক্তিকরভাবে)। এক্সএমএল জেনারেটরগুলি তুচ্ছ সহজ।

আমার মতে এটি কোড নিতে খুব বেশি সময় নেয় না এবং এটি বেশ দক্ষ।


4
আমার মতে এটি বিশ্রাম করার সবচেয়ে খারাপ উপায়। জাভাতে ম্যানুয়ালি সিরিয়ালাইজেশন হ্যান্ডেল করা সময় নষ্ট যখন আপনার কাছে জ্যাকএক্সবি এবং জ্যাকসনের মতো অনেকগুলি বিকল্প থাকে। এমনকি পুরো ডকুমেন্টটি লোড করা এবং এক্সপথ ব্যবহার করা স্যাক্সের তুলনায় প্রান্তিকভাবে ধীর এবং এক্সএমএল (নেটওয়ার্কের গতি) পাওয়ার তুলনায় কিছুই নয়।
অ্যাডাম জেন্ট

1
আমিও একমত, এবং আমি মূল মন্তব্যটি লিখেছি। তখন আমার ডিসরিয়ালাইজেশন নিয়ন্ত্রণের ইচ্ছা ছিল তবে আজকাল আমি জ্যাকসন এবং শালীনভাবে বর্ণিত মডেল ক্লাস ব্যবহার করব।
জিবিবি

4

OkHttp হালকা ওজনের এবং শক্তিশালী যখন রেট্রোফিটের সাথেও মিলিত হয়। এটি সাধারণ জাভা ব্যবহারের পাশাপাশি অ্যান্ড্রয়েডেও ভাল কাজ করে।

OkHttp : http://square.github.io/okhttp/

public static final MediaType JSON
    = MediaType.parse("application/json; charset=utf-8");

OkHttpClient client = new OkHttpClient();

String post(String url, String json) throws IOException {
  RequestBody body = RequestBody.create(JSON, json);
  Request request = new Request.Builder()
      .url(url)
      .post(body)
      .build();
  Response response = client.newCall(request).execute();
  return response.body().string();
}

Retrofit : http://square.github.io/retrofit/

public interface GitHubService {
  @GET("/users/{user}/repos")
  Call<List<Repo>> listRepos(@Path("user") String user);
}


2

যদিও এটি একটি সহজ এইচটিটিপি ক্লায়েন্ট তৈরি এবং একটি রিউস্ট করা। তবে আপনি যদি কিছু স্বয়ংক্রিয় উত্পাদিত ক্লায়েন্ট ব্যবহার করতে চান তবে আপনি কোড বর্ণনা ও উত্পন্ন করতে WADL ব্যবহার করতে পারেন।

আপনি ডাব্লুএসডিএল তৈরি ও সংকলনের জন্য রেস্টডেস্ক্রিপ ব্যবহার করতে পারেন, আপনি এটি ব্যবহার করে পিএইচপি, রুবি, পাইথন, জাভা এবং সি # তে ক্লায়েন্ট তৈরি করতে পারেন। এটি পরিষ্কার কোড জেনারেট করে এবং এখানে একটি ভাল পরিবর্তন আছে যে কোড কোড তৈরির পরে আপনাকে এটি খানিকটা টুইট করতে হবে, আপনি এখানে সরঞ্জামটির পিছনে ভাল ডকুমেন্টেশন এবং অন্তর্নিহিত চিন্তাভাবনাগুলি খুঁজে পেতে পারেন ।

উইন্টারমুটে উল্লেখযোগ্য কয়েকটি আকর্ষণীয় এবং দরকারী WADL সরঞ্জাম রয়েছে।


1

আমি একটি লাইব্রেরি লিখেছি যা একটি জাভা ইন্টারফেসকে দূরবর্তী JSON REST পরিষেবাটিতে ম্যাপ করে:

https://github.com/ggeorgovassilis/spring-rest-invoker

public interface BookService {
   @RequestMapping("/volumes")
   QueryResult findBooksByTitle(@RequestParam("q") String q);

   @RequestMapping("/volumes/{id}")
   Item findBookById(@PathVariable("id") String id);
}

1

আমি রেস্ট সার্ভিস প্রতিক্রিয়া বিশ্লেষণ করতে এবং পরিষেবাগুলি পরীক্ষার জন্য বেশিরভাগ সময় রেস্টআশার্ড ব্যবহার করেছি used রেস্ট অ্যাসোরড ব্যতীত, আমি রেসফুল পরিষেবাদির সাথে যোগাযোগ করার জন্য লাইব্রেরির নীচেও ব্যবহার করেছি।

ক। জার্সি রেস্ট ক্লায়েন্ট

খ। স্প্রিং রেস্টটেম্পলেট

গ। অ্যাপাচি এইচটিটিপি ক্লায়েন্ট


0

এইচটি-পি-এস-ক্লায়েন্টকে দেখার চেষ্টা করুন

https://github.com/g00dnatur3/http-rest-client

এখানে একটি সহজ উদাহরণ:

RestClient client = RestClient.builder().build();
String geocoderUrl = "http://maps.googleapis.com/maps/api/geocode/json"
Map<String, String> params = Maps.newHashMap();
params.put("address", "beverly hills 90210");
params.put("sensor", "false");
JsonNode node = client.get(geocoderUrl, params, JsonNode.class);

গ্রন্থাগারটি আপনার জন্য জসন সিরিয়ালাইজেশন এবং বাঁধাইয়ের যত্ন নেয়।

এখানে আরও একটি উদাহরণ দেওয়া হয়েছে,

RestClient client = RestClient.builder().build();
String url = ...
Person person = ...
Header header = client.create(url, person);
if (header != null) System.out.println("Location header is:" + header.value());

এবং একটি শেষ উদাহরণ,

RestClient client = RestClient.builder().build();
String url = ...
Person person = client.get(url, null, Person.class); //no queryParams

চিয়ার্স!


0

জার্সি রেস্ট ক্লায়েন্টের উদাহরণ:
নির্ভরতা যুক্ত করা:

         <!-- jersey -->
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.8</version>
    </dependency>
   <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.8</version>
    </dependency>

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.8</version>
</dependency>

    <dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20090211</version>
</dependency>

ForGetMethod এবং দুটি প্যারামিটার উত্তরণ:

          Client client = Client.create();
           WebResource webResource1 = client
                        .resource("http://localhost:10102/NewsTickerServices/AddGroup/"
                                + userN + "/" + groupName);

                ClientResponse response1 = webResource1.get(ClientResponse.class);
                System.out.println("responser is" + response1);

গেটমথোড একটি প্যারামিটার উত্তীর্ণ করছে এবং তালিকার প্রতিক্রিয়া পাচ্ছে:

       Client client = Client.create();

        WebResource webResource1 = client
                    .resource("http://localhost:10102/NewsTickerServices/GetAssignedUser/"+grpName);    
    //value changed
    String response1 = webResource1.type(MediaType.APPLICATION_JSON).get(String.class);

    List <String > Assignedlist =new ArrayList<String>();
     JSONArray jsonArr2 =new JSONArray(response1);
    for (int i =0;i<jsonArr2.length();i++){

        Assignedlist.add(jsonArr2.getString(i));    
    }

উপরে এটি একটি তালিকা ফিরিয়ে দেয় যা আমরা একটি তালিকা হিসাবে গ্রহণ করি এবং তারপরে এটি জসন অ্যারে এবং তারপরে জসন অ্যারেতে রূপান্তর করে।

যদি পোস্ট অনুরোধটি জেসন অবজেক্টটিকে প্যারামিটার হিসাবে পাস করে:

   Client client = Client.create();
    WebResource webResource = client
            .resource("http://localhost:10102/NewsTickerServices/CreateJUser");
    // value added

    ClientResponse response = webResource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class,mapper.writeValueAsString(user));

    if (response.getStatus() == 500) {

        context.addMessage(null, new FacesMessage("User already exist "));
    }

0

আমি বর্তমানে https://github.com/kevinsawicki/http-request ব্যবহার করছি তাদের সরলতা এবং উদাহরণগুলি যেভাবে দেখানো হয়েছে তা পছন্দ করি তবে বেশিরভাগই আমি যখন পড়েছিলাম তখন বিক্রি হয়েছিল:

নির্ভরতা কি?

কোনটিই নয়। এই লাইব্রেরির লক্ষ্য হ'ল কিছু অভ্যন্তরীণ স্থিতিশীল ক্লাস সহ একক শ্রেণির শ্রেণি। প্রকৃত এইচটিটিপি সার্ভার প্রয়োগের বিপরীতে অনুরোধগুলি পরীক্ষা করার জন্য পরীক্ষার প্রকল্পটির জেটির প্রয়োজন হয় না।

যা জাভা ১.6 প্রকল্পে কিছু সমস্যা সমাধান করেছে। বস্তুর মধ্যে জসনকে ডিকোডিংয়ের জন্য জিএসন কেবল অজেয় :)


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