2017-09-28 17 views
0

웹 사이트에서 일부 데이터를 가져 오는 데 도움이 필요합니다.로그인이 필요하고 POST 요청을 사용하는 웹 사이트에서 필드를 읽는 Java 코드를 작성하는 방법은 무엇입니까?

이전에는 응용 프로그램에서 다음 코드를 사용하여 필요한 데이터를 가져 왔습니다. 우리는 사용자 이름, 암호 및 검색 매개 변수 (DEA 번호)를 전달하여 URL을 구성하여 필수 입력란을 읽었습니다. 동일한 URL (매개 변수 포함)을 브라우저에서 직접 눌러 결과를 볼 수도 있습니다. 이제

{URL url = new URL(
        "http://www.deanumber.com/Websvc/deaWebsvc.asmx/GetQuery?UserName="+getUsername()+"&Password="+getPassword()+"&DEA=" 
          + deaNumber 
          + "&BAC=&BASC=&ExpirationDate=&Company=&Zip=&State=&PI=&MaxRows="); 

Document document = parser.parse(url.toExternalForm()); 
// Ask the document for a list of all <sect1> tags it contains 
NodeList sections = document.getElementsByTagName("DEA"); 
//Followed by a loop code to get each element by using sections.item(index).getFirstChild() etc. 
} 

, 웹 사이트 URL이 다음과 같이 변경되었다있다 : 그것은 간단한 GET 요청했다

나는 자격 증명을 사용하여 URL에 로그인 검색 페이지로 갈 수 있어요 https://www.deanumber.com/RelId/33637/ISvars/default/Home.htm

, DEA 번호를 입력하고 검색하십시오. 홈 페이지에서 '로그인'링크를 클릭하면 로그인 페이지가 팝업으로 나타납니다. 또한 최종 결과는 팝업으로 제공됩니다. 이것은 POST 요청이므로 코드에서 사용할 수있는 완전한 URL을 구성 할 수 없습니다.

저는 웹 서비스의 전문가는 아니지만, 위의 코드에서 언급 한 것과 같은 웹 서비스 URL이 필요하다고 생각합니다. 그걸 얻는 방법을 모르겠다 !! URL을 얻더라도 Java 코드를 통해 로그인을 수행하고 DEA 번호를 검색하는 방법을 모르겠습니다.

또한 Java에서 사용하기 전에 수동으로 URL의 유효성을 검사 할 수 있으면 좋을 것입니다. 어떤 방법이 있으면 알려주세요.

또는 Java에서 대체 접근 방법이있는 경우 친절하게 제안합니다.

미리 감사드립니다.

+0

https://deanumber.com에서 "WebService"페이지를 보셨습니까? 요청한 정보에 대한 링크가있는 것 같습니다 : https://www.deanumber.com/Websvc/deaWebsvc.asmx?op=GetQuery –

+0

Loic M. BTW, 어떻게 그 링크에 도달 했습니까? –

+0

웹 사이트를 방문하고 문서를 찾는 것만으로 ... –

답변

1

우선 웹 사이트에서 제공 한 이전 접근 방식은 일반 텍스트로 쿼리 문자열 매개 변수로 사용자 이름과 암호를 전달하기 때문에 완전히 잘못되어 안전하지 않습니다. 내 생각에, 그들은이 사실을 깨닫고 그들의 인증 방식을 바꿨을 것입니다.

또한 귀하와 같은 클라이언트 응용 프로그램의 직접 URL 기반 요청을 제한 한 것처럼 보입니다. 고객의 이러한 요청에 대해서는 웹 서비스를 게시했습니다. Check this link. 또한 웹 서비스 요청 횟수에 대한 요율을 언급했습니다.

따라서 공식적인 통신 채널을 열어 이러한 목적으로 인증 및 기타 세부 사항을 통해 웹 서비스에 액세스해야 할 수도 있습니다. 웹 서비스 클라이언트 인증에 사용하는 내용에 따라 클라이언트를 코딩하여 웹 서비스에 액세스 할 수 있습니다.

이 정보가 도움이되기를 바랍니다.

+0

감사합니다. 많은 AJavaCoder. 당신의 대답이 저에게 출발점이되었습니다. 링크에는 샘플 코드도 있습니다. 더 많은 문제에 직면 할 경우를 대비하여 여기에서 코딩 및 게시를 시작하겠습니다. BTW, 어떻게 그 링크에 도달 했습니까? –

+0

당신은 오신 것을 환영합니다. "제품 및 서비스"메뉴에서 "웹 서비스"라는 옵션을 발견했습니다. 당신이 느끼는 것이면 또한 내 대답을 받아 들일 수 있겠습니까? – AJavaCoder

+0

@AJavaCoder 다시 한번 감사드립니다 !!나는 webservice URL을 발견했고 http는 코드 예제 페이지에서 요청을 받았다. URL은 프로토콜을 제외하고 내 코드에서 사용 된 것과 같습니다. 그래서, 내 코드에서 http를 https로 변경했지만, 다음 예외가 발생합니다 : java.net.UnknownHostException : www.deanumber.com. URL을 얻는 것은 브라우저를 사용하여 성공했을 때 작동합니다. –