ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
HttpPostAndXml.java ( No.6 )
日時: 2013/06/22 03:56
名前: lightbox



拡張子:
package com.example.httppost;

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.Map;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import android.os.AsyncTask;
import android.util.Log;

// *********************************************************
// POST して XML を取得する
// *********************************************************
public class HttpPostAndXml extends AsyncTask<Map, Void, Document> {

	@Override
	protected Document doInBackground(Map... params) {
		
		Document xml_data = null;
		
		Map<String,String> myArg = params[0];

		try {
			// ターゲット
			URL url = new URL(myArg.get("url"));
			// 接続オブジェクト
			HttpURLConnection http = (HttpURLConnection)url.openConnection();
			http.setConnectTimeout(30000);
			http.setReadTimeout(30000);
			http.setDoInput(true);	// application/x-www-form-urlencoded がセットされる
			http.setRequestMethod("POST");
			
			OutputStreamWriter osw = new OutputStreamWriter(http.getOutputStream());
			BufferedWriter bw = new BufferedWriter(osw);
			
			Iterator<String> it =  myArg.keySet().iterator();
			String key = null;
			String value = null;
			String data = "";
			while(it.hasNext()) {
				key = it.next().toString();
				if ( key.equals("url") ) {
					continue;
				}
				value = myArg.get(key);
				if ( !data.equals("") ) {
					data += "&";
				}
				data += key + "=" + URLEncoder.encode(value, "utf-8") ;
			}
			
			Log.i("",data);
				
			bw.write( data );

			bw.close();
			osw.close();
			
			DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
			DocumentBuilder builder = dbfactory.newDocumentBuilder();
			// InputStream から Documentオブジェクトを取得
			xml_data = builder.parse(http.getInputStream());
			// 接続解除
			http.disconnect();
		}
		catch(Exception e) {
			Log.i("HttpPostAndXml", e.getMessage());
		}
		return xml_data;
	}
	

}