JAVAでHTTP通信するサンプルプログラム。 これを応用するとWEBサーバのCGIと連携するプログラムを作ることができる。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLEncoder;
import java.net.Authenticator;
import java.net.HttpURLConnection;
import javax.swing.JOptionPane;
public class TestHttp {
public static void main(String[] args){
try{
URL url = new URL("http://www.example.com/");
Authenticator.setDefault(createHttpAuthenticator());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setUseCaches(false);
conn.setRequestMethod("POST"); /* GET or POST */
conn.setDoOutput(true); /* GET:false / POST:true */
conn.connect();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));
StringBuffer outBuf = new StringBuffer();
/* GET の場合は URL にくっつける。 */
outBuf.append("&name1=").append(URLEncoder.encode("DATA1","UTF-8"));
outBuf.append("&name2=").append(URLEncoder.encode("DATA2","UTF-8"));
writer.write(outBuf.toString());
writer.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
StringBuffer inBuf = new StringBuffer();
String line;
while((line = reader.readLine()) != null){
inBuf.append(line).append('\n');
}
System.out.println(inBuf.toString());
reader.close();
conn.disconnect();
}catch(Exception ex){
JOptionPane.showMessageDialog(null, ex.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE);
ex.printStackTrace();
}
}
public static java.net.Authenticator createHttpAuthenticator(){
return new java.net.Authenticator(){
private String username = "xxxxxxxx";
private String password = "xxxxxxxx";
protected java.net.PasswordAuthentication getPasswordAuthentication(){
return new java.net.PasswordAuthentication(username, password.toCharArray());
}
};
}
}
JAVAでメール送信するサンプルプログラム。 別途拡張ライブラリ(JavaMail/JAF)が必要。 スパムは送らないようにしましょう。
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.swing.JOptionPane;
public class TestSmtp {
public static void main(String[] args){
try{
Properties props = System.getProperties();
props.setProperty("mail.smtp.host","mail.example.com");
props.setProperty("mail.from","info@example.com");
props.setProperty("smtp.auth","true");
Session session = Session.getDefaultInstance(props, (Authenticator) createSmtpAuthenticator());
MimeMessage mimeMessage = new MimeMessage(session);
InternetAddress[] address;
mimeMessage.setFrom(new InternetAddress(mailFrom,nameFrom,"iso-2022-jp"));
address = parseAddress(txtTo);
mimeMessage.setRecipients(Message.RecipientType.TO,address);
address = parseAddress(txtCc);
mimeMessage.setRecipients(Message.RecipientType.CC,address);
address = parseAddress(txtBcc);
mimeMessage.setRecipients(Message.RecipientType.BCC,address);
mimeMessage.setSubject(txtSubject,"iso-2022-jp");
mimeMessage.setText(txtBody,"iso-2022-jp");
mimeMessage.setHeader("Content-Type","text/plain; charset=ISO-2022-JP");
mimeMessage.setHeader("Content-Transfer-Encoding","7bit");
mimeMessage.setSentDate(new java.util.Date());
Transport.send(mimeMessage);
}catch(Exception ex){
JOptionPane.showMessageDialog(null, ex.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE);
ex.printStackTrace();
}
}
public static javax.mail.internet.InternetAddress[] parseAddress(String str){
if(str == null) return null;
if(str.length() == 0) return null;
javax.mail.internet.InternetAddress[] address = null;
try{
address = javax.mail.internet.InternetAddress.parse(str);
for(int i = 0; i < address.length; i++){
String mail = address[i].getAddress();
String name = address[i].getPersonal();
address[i] = new javax.mail.internet.InternetAddress(mail,name,"iso-2022-jp");
}
}catch(Exception ex){
JOptionPane.showMessageDialog(null, ex.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE);
ex.printStackTrace();
}
return address;
}
public static javax.mail.Authenticator createSmtpAuthenticator(){
return new javax.mail.Authenticator(){
private String username = "xxxxxxxx";
private String password = "xxxxxxxx";
protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
return new javax.mail.PasswordAuthentication(username,password);
}
};
}
}
URL url = new URL("ftp://username:password@www.example.com/filename.txt;type=i");
URLConnection con = url.openConnection();
// ダウンロードの場合
BufferedInputStream in = new BufferedInputStream(con.getInputStream());
// アップロードの場合
PrintWriter out = new PrintWriter(con.getOutputStream());
JFrame frame = new JFrame();
frame.setLocationByPlatform(true);
JDialog dialog = new JDialog(parent);
dialog.setLocationRelativeTo(parent);
[ RETURN ]