/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JKKURLconnection
*	ソースファイル名	：JKKURLconnection.java
*	作成者				：富士通　
*	作成日				：2011年8月11日
*＜機能概要＞
*　URLに接続する共通部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/11	富士通		新規作成
*********************************************************************/
package eo.common.util;

import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 引数で渡されたURLに接続する共通部品です。
 * <br>
 * @author 富士通
 */
public class JKKURLconnection 
{
	
	/**
	 * 外部インタフェースにアクセスする。
	 * @param param 送信パラメータ
	 * @param apiUrl URL
	 * @param encoding 文字コード
	 * @return 応答文
	 * @throws Exception 例外
	 */
	public static InputStream setUrlConnection(String param, String apiUrl, String encoding) throws Exception
	{
		apiUrl = apiUrl.replaceAll("\"", "");

		// XMLのPOST送信
		//引数のURLを設定します
		URL url = new URL(apiUrl);
		//URLが参照しているアドレスに接続します
		HttpURLConnection con = (HttpURLConnection)url.openConnection();
		//URL接続を入力用として使用するためtrueを設定
		con.setDoInput(true);
		//URL接続を出力用として使用するためのtrueを設定
		con.setDoOutput(true);
		//POST型でメソッドを設定します
		con.setRequestMethod("POST");
		//引数のエンコーダを指定します
		con.addRequestProperty("Content-Type", "text/xml");
		//引数のxml設定項目値をバッファに書き込みます
		con.addRequestProperty("Content-Length", Integer.toString(new String(param.getBytes("iso-8859-1"), encoding).getBytes().length));
		
		//出力先バッファをの引数のエンコーダに変換します
		OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream(), encoding);
		osw.write(param);
		//バッファの内容を出力
		osw.flush();
		//出力先を閉じます
		osw.close();
		//接続
		con.connect();
		// レスポンスの取得
		//返答された情報を取得します
		return con.getInputStream();
	}
}
