<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 使用`java.net`包的 RESTful 客戶端 > 原文: [https://howtodoinjava.com/resteasy/restful-webservices-client-using-java-net-package/](https://howtodoinjava.com/resteasy/restful-webservices-client-using-java-net-package/) 到目前為止,在此博客中,我們已經學習了有關構建服務器端組件 [**RESTful Web 服務**](//howtodoinjava.com/restful-web-service/ "restful-web-service")的知識。 在本文中,我們將學習構建一個 RESTful 客戶端,以使用先前文章中編寫的 Web 服務。 我將重新使用為 [RESTEasy + JAXB xml 示例](//howtodoinjava.com/resteasy/resteasy-jaxb-xml-example/ "RESTEasy + JAXB xml example")編寫的代碼庫。 我將構建一個不使用任何第三方工具的純 Java API 客戶端。 ## 1)構建 RESTful Web 服務 API 請遵循 [RESTEasy + JAXB xml 示例](//howtodoinjava.com/resteasy/resteasy-jaxb-xml-example/ "RESTEasy + JAXB xml example")中給出的步驟。 作為參考,服務和模型類為: **`UserManagementModule.java`** ```java package com.howtodoinjava.service; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; import com.howtodoinjava.model.User; @Path("/user-management") public class UserManagementModule { @GET @Path("/users/{id}") @Produces("application/xml") public Response getUserById(@PathParam("id") Integer id) { User user = new User(); user.setId(id); user.setFirstName("Lokesh"); user.setLastName("Gupta"); return Response.status(200).entity(user).build(); } } ``` **`User.java`** ```java package com.howtodoinjava.model; import java.io.Serializable; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlAccessorType(XmlAccessType.NONE) @XmlRootElement(name = "user") public class User implements Serializable { private static final long serialVersionUID = 1L; @XmlAttribute(name = "id") private int id; @XmlElement(name = "firstName") private String firstName; @XmlElement(name = "lastName") private String lastName; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } } ``` ## 2)創建 RESTFul Web 服務的用戶客戶端 我們的 Java 客戶端基于`java.net`包 API。 我在這里做兩個步驟: 1. 以字符串格式捕獲輸出 2. 從 xml 響應解組模型對象 ```java package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StringReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import com.howtodoinjava.model.User; public class PureJavaClient { public static void main(String[] args) { try { URL url = new URL("http://localhost:8080/RESTfulDemoApplication/user-management/users/10"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setRequestProperty("Accept", "application/xml"); if (conn.getResponseCode() != 200) { throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode()); } BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); String apiOutput = br.readLine(); System.out.println(apiOutput); conn.disconnect(); JAXBContext jaxbContext = JAXBContext.newInstance(User.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); User user = (User) jaxbUnmarshaller.unmarshal(new StringReader(apiOutput)); System.out.println(user.getId()); System.out.println(user.getFirstName()); System.out.println(user.getLastName()); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (JAXBException e) { e.printStackTrace(); } } } Output: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><user id="10"><firstName>Lokesh</firstName><lastName>Gupta</lastName></user> 10 Lokesh Gupta ``` 單擊以下鏈接下載此示例的源代碼。 **祝您學習愉快!**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看