2012-03-30 3 views
1

그래서이 코드 조각을 가지고 웹 사이트에서 양식을 채우고 제출한다고 가정하고 제출할 키와 값을 찾는 방법은 무엇입니까? 내가 더 잘 설명하겠다. 나는이 코드를 가지고있다. HTTP POST Request를 보내야한다.하지만 "key1"과 "value1"대신에 "key2"와 "value2" :http 요청을 보내려는 경우 Java로 outputstream으로 무엇을 작성합니까?

public String sendPostRequest(String url) { 

    StringBuffer sb = null; 

    try { 
     String data = URLEncoder.encode("key1", "UTF-8") + "=" 
       + URLEncoder.encode("value1", "UTF-8"); 
     data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" 
       + URLEncoder.encode("value2", "UTF-8"); 

     URL requestUrl = new URL(url); 
     HttpURLConnection conn = (HttpURLConnection) requestUrl 
       .openConnection(); 
     conn.setDoOutput(true); 
     conn.setRequestMethod("POST"); 

     OutputStreamWriter osw = new OutputStreamWriter(
       conn.getOutputStream()); 
     osw.write(data); 
     osw.flush(); 

     BufferedReader br = new BufferedReader(new InputStreamReader(
       conn.getInputStream())); 

     String in = ""; 
     sb = new StringBuffer(); 

     while ((in = br.readLine()) != null) { 
      sb.append(in + "\n"); 
     } 

     osw.close(); 
     br.close(); 
    } catch (UnsupportedEncodingException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return sb.toString(); 
} 

이 코드의 작동 복제본을 사용하여 예제 사이트를 제공 할 수 있습니까? (key1/key2 및 value1/value2가 작동하는 것으로 바뀌 었습니다)

더 잘 작동하면 키/값을 더 추가 할 수 있습니다. 모든 다른 사이트에 대해 작성해야 할 항목을 알 수있는 방법을 모르겠습니다.

+0

HTTP 라이브러리를 사용하지 않으려는 이유가 있습니까? –

+0

외부 라이브러리를 사용하고 싶지 않습니다. 그게 무슨 뜻인지 알고 싶다면, "데이터"문자열에 무엇을 삽입해야하는지 알았다면이 코드가 제대로 작동했기 때문입니다. – ZimZim

+0

왜 다른 곳에서 시험되고 테스트되고 최적화 된 코드를 사용하고 싶지 않으십니까? 이 정책을 모든 문제에 적용합니까? 저기에 많은 * 정말로 * 좋은 자바 라이브러리가 있습니다 - "여기에 발명되지 않은"증후군을 피하십시오. –

답변

3

키는 HTML 양식의 입력 요소의 이름 속성이됩니다. 값은 설정하려는 값입니다.

+0

당신은 생명의 은인, 감사합니다! – ZimZim

관련 문제