[Java] HTTP 방식으로 POST 통신
- 📕 Programing/Java
- 2021. 11. 2. 17:37
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;
}
'📕 Programing > Java' 카테고리의 다른 글
[Java] SFTP 사용하여 파일 업로드 (0) | 2023.02.14 |
---|---|
[Java] 객체의 특정 값으로 오름|내림 차순 정렬 (Comparable 사용) (0) | 2022.04.27 |
[Java] Steam의 filter 예제 (0) | 2021.10.14 |
[Java] 특정 객체의 값을 오름|내림 차순 정렬 (Comparator ) (0) | 2021.10.14 |
[Java] 메서드 실행 시간 구하기(초) (0) | 2021.10.13 |