2010年5月8日土曜日

ネットに情報をPOSTする

サーバとの通信を行うためにPOSTを使うことがよくあるけど、
setRequestPropertyで正しくContent-Typeを設定しないと
JavaServletでうまくデータを処理できないようだ。
というわけで、成功したコードはこんな感じ。

try{
 HttpConnection con = (HttpConnection)Connector.open(url, Connector.READ_WRITE, true);
 
 con.setRequestMethod(HttpConnection.POST);
 con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
 
 OutputStream os = con.openOutputStream();
 OutputStreamWriter osw = new OutputStreamWriter(os);
 osw.write(message);
 osw.close();
 os.close();
 
 con.connect();
 InputStream is = con.openInputStream();
 InputStreamReader isr = new InputStreamReader(is);
 StringBuffer strbuf = new StringBuffer();
 
 while( (c = isr.read()) != -1 ){
  strbuf.append( (char)c );
 }
 returnMessage = (String)strbuf.toString();
 
 is.close();
 con.close();
 
 return returnMessage;
}catch(Exception e){ 
 e.printStackTrace();
}