Talend WebAPI 데이터 검색 시 쿠키 저장할 구성 요소 솔루션

Talend WebAPI에서 데이터를 검색할 때 uniqid는 어떻게 얻을 수 있습니까?

사고방식:
· uniqid는 쿠키로 저장합니다.
・Talend는 쿠키 취득하는 컴퍼넌트가 없는 것을 확인.
・손으로 쿠키 취득하는 java 컴퍼넌트 작성한다.

이미지:


java 출처:
//변수 정의
String strPonit ="{\"uniqid\":\"";
String domainurl = "xxxxxxxxxxxxxxxxxxxxxxxxx";
String content_type = "application/x-www-form-urlencoded";
String apikey="xxxxxxxxxxxxxxxxxxxxxxxxx";
String login_id = "xxxxxxxxxxxxxxxxxxxxxxxxx";
String login_password = "xxxxxxxxxxxxxxxxxxxxxxxxx";
String udid = "xxxxxxxxxxxxxxxxxxxxxxxxx";
context.put("udid",udid);
//화면 청구 매개변수
apikey =String.format(apikey, login_id, login_password,udid);
java.net.URL url = new java.net.URL(domainurl);
java.net.HttpURLConnection conn = (java.net.HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", content_type);
conn.setDoOutput(true);
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes(apikey);
out.flush();
out.close();
java.util.Map> map = conn.getHeaderFields();
//화면 쿠키 가져오기
context.put("Cookie",map.get("Set-Cookie").get(0));
java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(conn.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
int startPonit = inputLine.indexOf(strPonit) + strPonit.length();
int endPonit = inputLine.indexOf("\"",startPonit);
//결제가 성공하면 화면의 uniqid 얻기
context.put("uniqid",inputLine.substring(startPonit, endPonit));
//System.out.println(inputLine);
}
in.close();

이미지:


HTTP 바디:
"action=list&table=products_class&limit=50000000&offset=0&udid="+(String)context.get("udid")+"&uniqid="+(String)context.get("uniqid")

참고: 작업은 개인 GIT에 업데이트(비공개)

이상

좋은 웹페이지 즐겨찾기