편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2016.04.08

    웹사이트에서 수행되는 Ajax호출을 그대로 따라하는 Java클라이언트를 만들고 싶습니다.


    아래는 제가 수행하고 싶은 ajax코드입니다. 해당 페이지는 부산대학교 홈페이지이며 기본적인 html코드에서 원하는 데이터는 얻었지만, 과목편람과 같이 Ajax call을 통해 얻어오는 정보는 가져올 수가 없더라구요.

    그래서 찾다보니 json으로 넘긴것은 파싱할때도 파라메터를 json으로 넣어야한다라 하길래 한번 코드를 구현해보았는데 안되더라구요.

    json의 데이터를 잘못 넣었는지 아니면 아래 추가로 있는 url 때문인지 모르겠습니다.

    $.ajax({
                url : "/middleware/curriculum/allocationOfPeople/searchPeriod",
                type : 'POST',
                dataType : 'json',
                data : JSON.stringify(paramMap),
                contentType : 'application/json',
                success : function(data) {
                    var datas=data.dataset1;
                    var isOK=datas[0].기간;
                    var url;
                    var type=$("#searchType1").is(":checked");
                    var paramMap = {};
                    var year=$("#year").val();
                    var semester=$("#semester").val();
                    var subject_is=$("#subject_is").val();
    
                    if(isOK=="Y"){
                        if(type==true){
                            var refinementAndMajor=$("#refinementAndMajor").val();
                            url="/middleware/curriculum/college/CollegeAssignInfoSearch";
                            paramMap["pName"] = [ "YEAR", "TERM","DEPTCD","CULTCD","GUBUN"];
                            if(subject_is=='3'){
                                paramMap["pValue"] = [ year,semester,"",refinementAndMajor,subject_is];
                            }else{
                                paramMap["pValue"] = [ year,semester,refinementAndMajor,"",subject_is];
                            }
                        }else{
                            var r_type_input=$("#r_type_input").val();
                            url="/middleware/curriculum/college/curriculumCollegeSubjectAssignInfoSearch";
                            paramMap["pName"] = [ "YEAR", "TERM","GUBUN","교과목명"];
                            paramMap["pValue"] = [ year,semester,subject_is,r_type_input];
                        }
                    }else{
                        if(type==true){
                            var refinementAndMajor=$("#refinementAndMajor").val();
                            url="/middleware/curriculum/college/CollegeSearch";
                            paramMap["pName"] = [ "YEAR", "TERM","DEPTCD","CULTCD","GUBUN"];
                            if(subject_is=='3'){
                                paramMap["pValue"] = [ year,semester,"",refinementAndMajor,subject_is];
                            }else{
                                paramMap["pValue"] = [ year,semester,refinementAndMajor,"",subject_is];
                            }
                        }else{
                            var r_type_input=$("#r_type_input").val();
                            url="/middleware/curriculum/college/curriculumCollegeSubjectSearch";
                            paramMap["pName"] = [ "YEAR", "TERM","GUBUN","교과목명"];
                            paramMap["pValue"] = [ year,semester,subject_is,r_type_input];
                        }
                    }
                    fn_search(url,paramMap,subject_is,isOK);
    
                },
                error : function(data, status, er) {
                    alert("error: " + data + " status: " + status + " er:" + er);
                }
            });```
    
    
    
    
    
    

    아래는 위 ajax를 재현하기 위해 Java로 구현하고 있는 부분입니다.

        private static String getHttpHTML_POST() {
            String url="http://e-onestop.pusan.ac.kr/menu/class/C03/C03001/";
           String sb="";  
              try {
               URL object=new URL(url);
    
               HttpURLConnection con = (HttpURLConnection) object.openConnection();
    
               con.setDoOutput(true);
               con.setDoInput(true);
               con.setRequestProperty("Content-Type", "application/json");
               con.setRequestProperty("Accept", "*/*");
               con.setRequestProperty("X-Requested-With", "XMLHttpRequest");
               con.setRequestMethod("POST");
    
    
               JSONObject data = new JSONObject();
               data.put("YEAR","2016");
               data.put("TERM", "10");
               data.put("DEPTCD","346712");
               data.put("CULTCD", "");
               data.put("GUBUN", "1");
               OutputStreamWriter wr= new OutputStreamWriter(con.getOutputStream());
    
               wr.write(data.toString());
               wr.flush();
    
               //display what returns the POST request
    
    
    
               int HttpResult =con.getResponseCode(); 
    
               if(HttpResult ==HttpURLConnection.HTTP_OK){
    
                   BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"utf-8"));  
    
                   String line = null;  
    
                   while ((line = br.readLine()) != null) {  
                    sb = sb+line + "\n";  
                   }  
    
                   br.close();  
    
                   System.out.println(""+sb.toString());  
    
               }else{
                   System.out.println(con.getResponseMessage());  
               }  
              }
              catch (Exception e) {
               e.printStackTrace();
              }
              finally {
    
              }
    
              return sb;
    
        }