[Java] HTTP 방식으로 POST 통신

 

package com.hyosung;


import org.json.JSONArray;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class httpTest {
    public static void main(String[] args) {
        // URL에 파라미터 넘긴다
        String hostUrl = "http://nhdpdmsvr.hyosung.com/Windchill/plm/partrest/subPartList/oid/664451010";

        try {

            JSONObject param = new JSONObject();
            param.put("partOid", "664451010");

            HttpURLConnection con = null;

            URL url = new URL(hostUrl);
            con = (HttpURLConnection) url.openConnection();

            con.setRequestMethod("POST");
            con.setRequestProperty("Content-Type", "application-json");
            con.setRequestProperty("Authorization", "Basic d2NhZG1pbjp3Y2FkbWlu");

            //POST방식으로 JSON 보내기
            con.setDoOutput(true);
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(con.getOutputStream()));
            bw.write(bw.toString());
            bw.flush();
            bw.close();


            //서버에서 보낸 응답 데이터 수신
            BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
            String returnMsg = reader.readLine();

            
            JSONObject jObj = new JSONObject(returnMsg.toString());

            System.out.println("jObj = " + jObj);

            int a = (int)jObj.get("size");
            JSONArray list = (JSONArray) jObj.get("data");

            for (int i = 0; i < list.length(); i++) {
                JSONObject data = (JSONObject)list.get(i);
                String partNo = (String) data.get("partno");
                String name = (String) data.get("name");
                String rev = (String) data.get("rev");
                String findNumber = (String) data.get("findNumber");
                String level = (String) data.get("level");
                String state = (String) data.get("state");
                String title = (String) data.get("title");

                System.out.println(partNo + " - " + rev + " - " + findNumber + " :: " + name);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

 

응답

리턴값이 Map에 데이터 담아서 전달

 

/**
	 * 하위 부품 조회
	 * @param partOid
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/partrest/subPartList/oid/{partOid}")
	@ResponseBody
	public Map<String, Object> subPartList(@PathVariable String partOid) throws Exception {
		
		log.info(" ## PartRestController :: subPartList ## ");
		
		Map<String, Object> map = new HashMap<>();
		
		System.out.println("subPartLis === =");
		
		ArrayList<HashMap<String,String>> data = new  ArrayList<>();
		
		ArrayList<PartTreeView> list = new ArrayList<>();
		
		try {
			if(partOid != null && !"".equals(partOid)) {
				String oid = "wt.part.WTPart:" + partOid;
				WTPart part = (WTPart) CommonUtils.getObject(oid);
				list = HyoSungCommonUtil.subPartTree(part);
				
				int  cnt = 1;
				if(list.size() > 0) {
					for(int i=0; i < list.size(); i++) {
						
						HashMap<String, String> o = new HashMap<>();
						
						PartTreeView v = list.get(i);
						
						
						String name = v.name;
						String rev = v.fullVersion;
						String partNo = v.PART_NO;
						String findNumber = v.findNumber;
						o.put("row", String.valueOf( cnt++ ));
						
						o.put("partno", partNo);
						o.put("oid", v.oid);
						o.put("rev", rev);
						o.put("level", String.valueOf( v.level ));
						
						o.put("name", name);
						o.put("findNumber", findNumber);
						o.put("title", v.TITLE);
						o.put("state", v.stateKey);
						
						log.info("o ={}" , o);
						
						data.add(o);
					}
				}
				map.put("partNo", IBAUtils.getStringValue(part, "PART_NO"));
				map.put("size", data.size());
				map.put("data", data);
			}
			
			System.out.println("m === = " + map);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return map;
	}

댓글

Designed by JB FACTORY