ズバリ!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 件のコメント:
コメントを投稿