2012-03-30 1 views
1

私はこのコードを持っており、ウェブサイトのフォームに記入して提出したいと思っています。提出するキーと値はどのようにして見つけられますか?私はこのコードを持っていますが、HTTP POSTリクエストを送信するはずですが、 "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

私は文字列 "data"に何を挿入すればよいか分かっていれば、このコードがうまく動作するので、外部ライブラリを使用したくないのです。 – ZimZim

+0

試して、テストし、最適化されたコードを他の場所から使いたくないのはなぜですか?このポリシーをすべての問題に適用しますか?そこには多くの*本当に良いJavaライブラリがあります - ここでは "発明されていない"シンドロームを避けてください。 –

答えて

3

キーは、htmlフォームの入力要素の名前属性になります。値は設定したい値になります。

+0

あなたは命の恩人です、ありがとう! – ZimZim

関連する問題