How to use the REST service in BPM (1): Access webpage content through a program

Source: Internet
Author: User

 

This article mainly describes how to access webpage content through a program, which is the basis for accessing the REST service.

In Java, we can use the HttpUrlConnection class. The Code is as follows.

1 package http. base; 2 3 import java. io. bufferedReader; 4 import java. io. IOException; 5 import java. io. inputStream; 6 import java. io. inputStreamReader; 7 import java.net. httpURLConnection; 8 import java.net. URL; 9 import java. nio. charset. charset; 10 import java. util. map; 11 import java. util. vector; 12 13 14 public class HttpRequester {15 private String defaultContentEncoding; 16 17 public HttpRequ Ester () {18 this. defaultContentEncoding = Charset. defaultCharset (). name (); 19} 20 21 public HttpResponse sendGet (String urlString) throws IOException {22 return this. send (urlString, "GET", null, null); 23} 24 25 public HttpResponse sendGet (String urlString, Map <String, String> params) 26 throws IOException {27 return this. send (urlString, "GET", params, null); 28} 29 30 public HttpResponse NdGet (String urlString, Map <String, String> params, 31 Map <String, String> propertys) throws IOException {32 return this. send (urlString, "GET", params, propertys); 33} 34 35 public HttpResponse sendPost (String urlString) throws IOException {36 return this. send (urlString, "POST", null, null); 37} 38 39 public HttpResponse sendPost (String urlString, Map <String, String> params) 40 throws IOExcept Ion {41 return this. send (urlString, "POST", params, null); 42} 43 44 public HttpResponse sendPost (String urlString, Map <String, String> params, 45 Map <String, string> propertys) throws IOException {46 return this. send (urlString, "POST", params, propertys); 47} 48 49 private HttpResponse send (String urlString, String method, 50 Map <String, String> parameters, Map <String, string> propertys) 51 t Hrows IOException {52 HttpURLConnection urlConnection = null; 53 54 if (method. inclusignorecase ("GET") & parameters! = Null) {55 StringBuffer param = new StringBuffer (); 56 int I = 0; 57 for (String key: parameters. keySet () {58 if (I = 0) 59 param. append ("? "); 60 else 61 param. append ("&"); 62 param. append (key ). append ("= "). append (parameters. get (key); 63 I ++; 64} 65 urlString + = param; 66} 67 URL url = new URL (urlString); 68 urlConnection = (HttpURLConnection) url. openConnection (); 69 70 urlConnection. setRequestMethod (method); 71 urlConnection. setDoOutput (true); 72 urlConnection. setDoInput (true); 73 urlConnection. setUseCaches (false); 74 75 if (prope Rtys! = Null) 76 for (String key: propertys. keySet () {77 urlConnection. addRequestProperty (key, propertys. get (key); 78} 79 80 if (method. equalsIgnoreCase ("POST") & parameters! = Null) {81 StringBuffer param = new StringBuffer (); 82 for (String key: parameters. keySet () {83 param. append ("&"); 84 param. append (key ). append ("= "). append (parameters. get (key); 85} 86 urlConnection. getOutputStream (). write (param. toString (). getBytes (); 87 urlConnection. getOutputStream (). flush (); 88 urlConnection. getOutputStream (). close (); 89} 90 91 return this. makeContent (urlString, urlConnec Tion); 92} 93 94 private HttpResponse makeContent (String urlString, 95 HttpURLConnection urlConnection) throws IOException {96 HttpResponse httpResponser = new HttpResponse (); 97 try {98 InputStream in = urlConnection. getInputStream (); 99 BufferedReader bufferedReader = new BufferedReader (100 new InputStreamReader (in); 101 httpResponser. contentCollection = new Vector <String> (); 102 StringBuffer Temp = new StringBuffer (); 103 String line = bufferedReader. readLine (); 104 while (line! = Null) {105 httpResponser. contentCollection. add (line); 106 temp. append (line ). append ("/r/n"); 107 line = bufferedReader. readLine (); 108} 109 bufferedReader. close (); 110 111 String ecod = urlConnection. getContentEncoding (); 112 if (ecod = null) 113 ecod = this. defaultContentEncoding; 114 115 httpResponser. urlString = urlString; 116 117 httpResponser. defaultPort = urlConnection. getURL (). getDefaultPort (); 118 HttpResponser. file = urlConnection. getURL (). getFile (); 119 httpResponser. host = urlConnection. getURL (). getHost (); 120 httpResponser. path = urlConnection. getURL (). getPath (); 121 httpResponser. port = urlConnection. getURL (). getPort (); 122 httpResponser. protocol = urlConnection. getURL (). getProtocol (); 123 httpResponser. query = urlConnection. getURL (). getQuery (); 124 httpResponser. ref = urlConnection. getURL (). GetRef (); 125 httpResponser. userInfo = urlConnection. getURL (). getUserInfo (); 126 127 httpResponser. content = new String (temp. toString (). getBytes (), ecod); 128 httpResponser. contentEncoding = ecod; 129 httpResponser. code = urlConnection. getResponseCode (); 130 httpResponser. message = urlConnection. getResponseMessage (); 131 httpResponser. contentType = urlConnection. getContentType (); 132 httpResponser. meth Od = urlConnection. getRequestMethod (); 133 httpResponser. connectTimeout = urlConnection. getConnectTimeout (); 134 httpResponser. readTimeout = urlConnection. getReadTimeout (); 135 136 return httpResponser; 137} catch (IOException e) {138 throw e; 139} finally {140 if (urlConnection! = Null) 141 urlConnection. disconnect (); 142} 143} 144 145 public String getdefacontcontentencoding () {146 return this. defaultContentEncoding; 147} 148 149 public void setdefacontcontentencoding (String defaultContentEncoding) {150 this. defaultContentEncoding = defaultContentEncoding; 151} 152}HttpRequest Class 1 package http. base; 2 3 import java. util. vector; 4 5 public class HttpResponse {6 7 String urlString; 8 int defaultPort; 9 String file; 10 String host; 11 String path; 12 int port; 13 String protocol; 14 String query; 15 String ref; 16 String userInfo; 17 String contentEncoding; 18 String content; 19 String contentType; 20 int code; 21 String message; 22 String method; 23 int connectTimeout; 24 int readTimeout; 25 Vector <String> contentCollection; 26 27 public String getContent () {28 return content; 29} 30 31 public String getContentType () {32 return contentType; 33} 34 35 public int getCode () {36 return code; 37} 38 39 public String getMessage () {40 return message; 41} 42 43 public Vector <String> getContentCollection () {44 return contentCollection; 45} 46 47 public String getContentEncoding () {48 return contentEncoding; 49} 50 51 public String getMethod () {52 return method; 53} 54 55 public int getConnectTimeout () {56 return connectTimeout; 57} 58 59 public int getReadTimeout () {60 return readTimeout; 61} 62 63 public String getUrlString () {64 return urlString; 65} 66 67 public int getDefaultPort () {68 return defaultPort; 69} 70 71 public String getFile () {72 return file; 73} 74 75 public String getHost () {76 return host; 77} 78 79 public String getPath () {80 return path; 81} 82 83 public int getPort () {84 return port; 85} 86 87 public String getProtocol () {88 return protocol; 89} 90 91 public String getQuery () {92 return query; 93} 94 95 public String getRef () {96 return ref; 97} 98 99 public String getUserInfo () {100 return userInfo; 101} 102 103}HttpResponse class

Below is a simple test class.

1 package http. base; 2 3 public class HttpTest {4 public static void main (String [] args) {5 try {6 HttpRequester request = new HttpRequester (); 7 HttpResponse hr = request. sendGet ("http://www.baidu.com"); 8 9 System. out. println (hr. getUrlString (); 10 System. out. println (hr. getProtocol (); 11 System. out. println (hr. getHost (); 12 System. out. println (hr. getPort (); 13 System. out. println (hr. getContentEncoding (); 14 System. out. println (hr. getMethod (); 15 16 System. out. println (hr. getContent (); 17 18} catch (Exception e) {19 e. printStackTrace (); 20} 21} 22}View Code

Because the return values of the REST service are generally JSON objects, in the next article, we will look at how to convert Java objects and JSON objects.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.