ItinoseSan/twi-Java

View on GitHub
src/main/java/twijava/http/core/HttpRequest.java

Summary

Maintainability
A
0 mins
Test Coverage
package twijava.http.core;

import twijava.APIKeyFactory;
import twijava.url.TwitterApiURLs;
import twijava.http.HttpResponseHandler;
import twijava.oauth.*;

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.TreeMap;


public class HttpRequest {

    public String get(String uri,TreeMap<String,String>data){
        return makeSendParam("GET",uri,data);
    }

    public String post(String uri,TreeMap<String,String>data){
        return makeSendParam("POST",uri,data);
    }

    private String makeSendParam(String method, String uri, TreeMap<String,String>data) {

        try {
            TreeMap<String,String>keyMap = APIKeyFactory.apiKeyMap();

            StringBuilder urlBuilder = new StringBuilder();

            String url = urlBuilder
                    .append(TwitterApiURLs.END_POINT_URL)
                    .append(uri).toString();

            System.out.println("Request Url:"+url);

            TreeMap<String, String> oauthMap = OAuthMapFactory.getOAuthMap(keyMap.get("ck"),keyMap.get("ac"));

            String signature = OAuthSignatureFactory.makeSignature(method, url, data, oauthMap);
            String oAuthHeader = OAuthHeaderFactory.makeOAuthHeader(signature, oauthMap,keyMap.get("cks"),keyMap.get("ats"));
            String urlWithParam = OAuthParamFactory.makeURLwithParam(url, data);

            URL sendUrl = new URL(urlWithParam);
            return sendRequest(sendUrl,oAuthHeader,method);

        } catch (Exception e) {
            return e.toString();
        }
    }

    private String sendRequest(URL sendUrl,String oAuthHeader,String method) {

        try {

            HttpURLConnection urlConnection = (HttpURLConnection) sendUrl.openConnection();

            urlConnection.setRequestProperty("Authorization", oAuthHeader);
            urlConnection.setRequestMethod(method);
            urlConnection.connect();

            return HttpResponseHandler.receiveResponse(urlConnection);

        } catch (Exception e) {
            return e.toString();
        }
    }
}