2014-07-22 1 views
1

HTTP 매개 변수를 사용하여 서버에 쿼리를 보내고 결과를 가져옵니다. Jsoup를 사용하여 URL에 매개 변수를 보내십시오.Jsoup가 HTTP 응답을 가져 오지 못하도록합니다.

String doc = Jsoup.connect("http://server.com/query?a=x").execute().body(); 

그러나 경우에 따라 결과가 필요하지 않습니다. 난 그냥 서버에 매개 변수를 보내고 응답을 무시하고 싶습니다.

Jsoup이 응답을 다운로드하지 못하도록 차단할 수 있습니까? HTTP URL 매개 변수를 응답을 다운로드하지 않고 서버에 보낼 수있는 다른 방법이 있습니까?

+0

어떤 경우 응답이 필요하지 않습니까? 귀하의 질문에 대한 대답은 아니오입니다. jsoup의 소스 코드를 변경하지 않고는 아무 것도 할 수 없습니다. – alkis

+0

@alkis 서버에서 프로 시저를 트리거하려고합니다. Jsoup 대신 사용할 다른 라이브러리/메소드는 어떻습니까? –

답변

1

Jsoup은 아래에 HttpURLConnection을 사용합니다. 응답을 생략하는 것은 옵션이 아니며 파싱 프레임 워크이기 때문에 응답해야합니다. 그렇지 않으면 전혀 의미가 없습니다. 당신이 할 수있는 것은 요청을 보내기 위해 HttpURLConnection을 직접 사용하는 것입니다. 그런 다음 응답을 읽지 않습니다. here에서 가져온 POST 및 GET의 예는 다음과 같습니다.

public class HttpURLConnectionExample { 

    private final String USER_AGENT = "Mozilla/5.0"; 

    public static void main(String[] args) throws Exception { 

     HttpURLConnectionExample http = new HttpURLConnectionExample(); 

     System.out.println("Testing 1 - Send Http GET request"); 
     http.sendGet(); 

     System.out.println("\nTesting 2 - Send Http POST request"); 
     http.sendPost(); 

    } 

    // HTTP GET request 
    private void sendGet() throws Exception { 

     String url = "http://www.google.com/search?q=mkyong"; 

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

     // optional default is GET 
     con.setRequestMethod("GET"); 

     //add request header 
     con.setRequestProperty("User-Agent", USER_AGENT); 

     int responseCode = con.getResponseCode(); 
     System.out.println("\nSending 'GET' request to URL : " + url); 
     System.out.println("Response Code : " + responseCode); 

     /*This part should be removed*/ 
     /*BufferedReader in = new BufferedReader(
       //new InputStreamReader(con.getInputStream())); 
     String inputLine; 
     StringBuffer response = new StringBuffer(); 

     while ((inputLine = in.readLine()) != null) { 
      response.append(inputLine); 
     } 
     in.close(); 

     //print result 
     System.out.println(response.toString()); */ 

    } 

    // HTTP POST request 
    private void sendPost() throws Exception { 

     String url = "https://selfsolve.apple.com/wcResults.do"; 
     URL obj = new URL(url); 
     HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); 

     //add reuqest header 
     con.setRequestMethod("POST"); 
     con.setRequestProperty("User-Agent", USER_AGENT); 
     con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); 

     String urlParameters = "sn=C02G8416DRJM&cn=&locale=&caller=&num=12345"; 

     // Send post request 
     con.setDoOutput(true); 
     DataOutputStream wr = new DataOutputStream(con.getOutputStream()); 
     wr.writeBytes(urlParameters); 
     wr.flush(); 
     wr.close(); 

     int responseCode = con.getResponseCode(); 
     System.out.println("\nSending 'POST' request to URL : " + url); 
     System.out.println("Post parameters : " + urlParameters); 
     System.out.println("Response Code : " + responseCode); 

     /*This part should be removed*/ 
     /*BufferedReader in = new BufferedReader(
       new InputStreamReader(con.getInputStream())); 
     String inputLine; 
     StringBuffer response = new StringBuffer(); 

     while ((inputLine = in.readLine()) != null) { 
      response.append(inputLine); 
     } 
     in.close(); 

     //print result 
     System.out.println(response.toString());*/ 

    } 

} 
관련 문제