Last active
December 13, 2015 21:08
-
-
Save yeongu-dev/4974624 to your computer and use it in GitHub Desktop.
Java. HttpPostMDeliverThread: HTTP의 Post방식 클래스
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
HttpPostMDeliver, [email protected] | |
Usecase: | |
HttpPostMDeliverThread thread = new HttpPostMDeliverThread(handler, encoding); | |
thread.setDaemon(true); | |
thread.addQuery(name, value); | |
thread.start(); | |
License: BSD license | |
Copyright (c) 2013, yg&tk | |
*/ | |
import java.io.BufferedReader; | |
import java.io.IOException; | |
import java.io.InputStreamReader; | |
import java.io.OutputStreamWriter; | |
import java.io.PrintWriter; | |
import java.net.HttpURLConnection; | |
import java.net.MalformedURLException; | |
import java.net.URL; | |
import java.util.HashMap; | |
import java.util.Iterator; | |
import java.util.Map; | |
import java.util.Map.Entry; | |
import java.util.Set; | |
import android.os.Handler; | |
import android.os.Message; | |
public class HttpPostMDeliverThread extends Thread { | |
static final String TAG = "HttpPostMDeliverThread"; | |
static final boolean DEBUG = true; | |
static final int MSG = 1000; | |
private String _hostUrl; | |
private String _encoding; | |
private HashMap<String, String> _queryMap; | |
private Handler _handler; | |
public HttpPostMDeliverThread(Handler handler, String hostUrl, String encoding) | |
{ | |
this._handler = handler; | |
this._hostUrl = hostUrl; | |
this._encoding = encoding; | |
this._queryMap = new HashMap<String, String>(); | |
}// HttpPostMDeliverThread | |
public HttpPostMDeliverThread(Handler handler, HashMap<String, String> queryMap, String encoding) | |
{ | |
_queryMap = queryMap; | |
_encoding = encoding; | |
} // HttpPostMDeliverThread | |
public void addValue(String name, String value) | |
{ | |
_queryMap.put(name, value); | |
}// addValue | |
public void run() | |
{ | |
String buffer = null; | |
StringBuilder sber = new StringBuilder(); | |
URL url = null; | |
try | |
{ | |
url = new URL(_hostUrl); | |
} | |
catch (MalformedURLException e) | |
{ | |
e.printStackTrace(); | |
} | |
try | |
{ | |
HttpURLConnection conn = (HttpURLConnection)url.openConnection(); | |
conn.setDefaultUseCaches(false); | |
conn.setDoInput(true); | |
conn.setDoOutput(true); | |
conn.setRequestMethod("POST"); | |
conn.setRequestProperty("content-type", "application/x-www-form-urlencoded"); | |
PrintWriter pw = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), _encoding)); | |
pw.write(makeQueryStringFromMap(_queryMap)); | |
pw.flush(); | |
BufferedReader bf = new BufferedReader(new InputStreamReader(conn.getInputStream(), _encoding)); | |
while ((buffer= bf.readLine()) != null) | |
{ | |
sber.append(buffer); | |
} | |
} | |
catch (IOException e) | |
{ | |
e.printStackTrace(); | |
} | |
Message msg = Message.obtain(_handler, this.MSG, sber.toString()); | |
_handler.sendMessage(msg); | |
}// run | |
protected String makeQueryStringFromMap(HashMap<String, String> queryMap) | |
{ | |
StringBuilder sb = new StringBuilder(); | |
Set<Entry<String, String>> set = queryMap.entrySet(); | |
Iterator<Entry<String, String>> it = set.iterator(); | |
while (it.hasNext()) | |
{ | |
Map.Entry<String, String> E = (Map.Entry<String, String>)it.next(); | |
sb.append( E.getKey() ).append("=").append( E.getValue() ); | |
} | |
return sb.toString(); | |
}//makeQueryStringFromMap | |
} |
Thread를 상속받는게 맞는건지 impliments Runnable 을 사용하는것이 맞는건지는 나중에 생각..
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Todo
get method thread
classhttp method thread
class