ズバリ!HTTPのGETもPOSTも何でもやってくれるようなクラス。
ではでは、早速作成に入りたいと思います。
Http.java
package com.shonanshachu.http; public class Http { private String url; private ArrayList<NameValuePair> params; public Http(){ params = new ArrayList<NameValuePair>(); } public void setUrl(String url){ this.url = url; } public void setParam(String key, String value){ params.add(new BasicNameValuePair(key, value)); } public String get() throws UnsupportedEncodingException, ClientProtocolException, IOException{ String paramString = ""; if(params.size() > 0 ){ if(this.url.contains("?"){ paramString += "&"; } else { parmaString += "?"; } paramString += params.get(0).getName() + "=" + params.get(0).getValue(); for(int i = 1; i < params.size(); i++){ paramString += "&" + params.get(i).getName() + "=" + params.get(i).getValue(); } } HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(url); HttpResponse response = client.execute(get); ByteArrayOutputStream outstream = new ByteArrayOutputStream(); response.getEntity().writeTo(outstream); return outstream.toString(); } public String post() throws UnsupportedEncodingException, ClientProtocolException, IOException{ HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); post.setEntity(new UrlEncodedFormEntity(params)); HttpResponse response = client.execute(post); ByteArrayOutputStream outstream = new ByteArrayOutputStream(); response.getEntity().writeTo(outstream); return outstream.toString(); } }
include等は省いていますが、
こんな感じで、
GETでもPOSTでもHTTP通信が出来るようになりました。
私はさらに拡張して、
UserAgentだとか、Content-Type何かも拡張できるようにしておりますが、
ブログにするにはクラスのサイズが大きいので、簡単にまとめました。
今回はここまでです。
次回もよろしくお願いします。
0 件のコメント:
コメントを投稿