Java 调用restful webservice & jackson

package com.bullshit.webcrawler.client.impl;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import com.bullshit.storage.entity.AuthUser;
import com.bullshit.storage.entity.Proxy;
import com.bullshit.storage.entity.vo.AuthUsersVo;
import com.fasterxml.jackson.databind.ObjectMapper;

public class ProxyCollectionRestService {

	private static final String targetURL = "http://localhost:8080/blueberry/rest/v1/api/proxies";
	
	public Proxy[] getAllProxies(){

		Proxy[] proxies = null;
		try {
	          URL restServiceURL = new URL(targetURL);
	          HttpURLConnection httpConnection = (HttpURLConnection) restServiceURL.openConnection();
	          httpConnection.setRequestMethod("GET");
		      httpConnection.setRequestProperty("Accept", "application/json");
		      if (httpConnection.getResponseCode() != 200) {
		             throw new RuntimeException("HTTP GET Request Failed with Error code : "
		                           + httpConnection.getResponseCode());
		      }		
		      BufferedReader responseBuffer = new BufferedReader(new InputStreamReader(
		             (httpConnection.getInputStream())));
		
		      String output;
	          ObjectMapper objectMapper = new ObjectMapper();
	          while ((output = responseBuffer.readLine()) != null) {
	        	  proxies = objectMapper.readValue(output, Proxy[].class);
	        	  List<Proxy> myObjects22 = objectMapper.readValue(output, objectMapper.getTypeFactory().constructCollectionType(List.class, Proxy.class));
	              System.out.println(myObjects22.size());
	        	  break;
	          }
	          httpConnection.disconnect();
	     } catch (MalformedURLException e) {
	          e.printStackTrace();
	     } catch (IOException e) {
	          e.printStackTrace();
	     }
		return proxies;
	}
	
	public AuthUsersVo postAuthUserInfo(AuthUser record){

		AuthUsersVo authUsersVo = null;
		 try {

             URL targetUrl = new URL(targetURL);

             HttpURLConnection httpConnection = (HttpURLConnection) targetUrl.openConnection();
             httpConnection.setDoOutput(true);
             httpConnection.setRequestMethod("POST");
             httpConnection.setRequestProperty("Content-Type", "application/json");

             ObjectMapper objectMapper = new ObjectMapper();
             String input = objectMapper.writeValueAsString(record);

             OutputStream outputStream = httpConnection.getOutputStream();
             outputStream.write(input.getBytes());
             outputStream.flush();

             if (httpConnection.getResponseCode() != 200) {
                    throw new RuntimeException("Failed : HTTP error code : "
                           + httpConnection.getResponseCode());
             }
             
             BufferedReader responseBuffer = new BufferedReader(new InputStreamReader(
                           (httpConnection.getInputStream())));

             String output;
             System.out.println("Output from Server:
");
             while ((output = responseBuffer.readLine()) != null) {
                    System.out.println(output);
             }

             httpConnection.disconnect();

        } catch (MalformedURLException e) {

             e.printStackTrace();

        } catch (IOException e) {

             e.printStackTrace();

       }
		return authUsersVo;
	}

	public static void main(String[] args) {
		ProxyCollectionRestService service = new ProxyCollectionRestService();

		Proxy[] s = service.getAllProxies();
		
		System.out.println(s.length);
	}

}

  

原文地址:https://www.cnblogs.com/dunkbird/p/4433027.html