package com.lovamimi;
import android.util.Log;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.protocol.ClientContext;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.BasicHttpContext;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
public class HttpHelper {
private static final String TAG = "HttpHelper";
public static String chop(String s) {
if (s.isEmpty()) {
return s;
} else {
if (s.charAt(s.length() - 1) == '\n') {
return s.substring(0, s.length() - 1);
} else {
return s;
}
}
}
public static boolean postLovamimi(String sessionId, BasicNameValuePair... queryParameters) {
sessionId = HttpHelper.chop(sessionId);
HttpClient client = new DefaultHttpClient();
String url = "http://lovamimi.com/ja";
HttpPost httpPost = new HttpPost(url);
BasicHttpContext httpContext = new BasicHttpContext();
CookieStore cookieStore = new BasicCookieStore();
BasicClientCookie cookie = new BasicClientCookie("SESSION_ID", sessionId);
cookie.setVersion(1);
cookie.setDomain("lovamimi.com");
cookie.setPath("/");
cookie.setExpiryDate(new Date(2032, 5, 16));
cookieStore.addCookie(cookie);
httpContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.addAll(Arrays.asList(queryParameters));
params.add(new BasicNameValuePair("lang", "ja"));
params.add(new BasicNameValuePair("type", "android"));
try {
httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
HttpResponse response = client.execute(httpPost, httpContext);
if (response.getStatusLine().getStatusCode() == 200) {
return true;
} else {
HttpEntity entity = response.getEntity();
InputStream in = entity.getContent();
String result = HttpHelper.streamToString(in);
in.close();
Log.e(TAG, result);
return false;
}
} catch (IOException e) {
Log.e(TAG, e.toString());
return false;
}
}
public static String streamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
}