package com.socioboard.t_board_pro.twitterapi; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import javax.net.ssl.HttpsURLConnection; import com.socioboard.t_board_pro.util.MainSingleTon; public class TwitterTimeLineRequest { TwitterRequestCallBack twitterRequestCallBack; public TwitterTimeLineRequest( TwitterRequestCallBack twitterRequestCallBack) { this.twitterRequestCallBack =twitterRequestCallBack; } public void doInBackground() { String response = null; String url = MainSingleTon.userTimeLine; try { myprint("url : " + url); String authData = getAuthDAta(url); //myprint("authData : " + authData); URL obj = new URL(url); HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); con.setRequestMethod("GET"); con.addRequestProperty("Authorization", authData); con.addRequestProperty("Host", "api.twitter.com"); con.addRequestProperty("X-Target-URI", "https://api.twitter.com"); con.addRequestProperty("Connection", "Keep-Alive"); String tmp = readResponse(con); response = tmp.substring(1, tmp.length()-2); twitterRequestCallBack.onSuccess(response); myprint("jsonString response = " + response); } catch (Exception e) { e.printStackTrace(); myprint("Exception = = " + e); twitterRequestCallBack.onFailure(e); } } // Reads a response for a given connection and returns it as a string. public static String readResponse(HttpsURLConnection connection) { try { int responseCode = connection.getResponseCode(); myprint("readResponse connection.getResponseCode() " +responseCode ); String jsonString = null ; if (responseCode == HttpURLConnection.HTTP_OK) { InputStream linkinStream = connection.getInputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int j = 0; while ((j = linkinStream.read()) != -1) { baos.write(j); } byte[] data = baos.toByteArray(); jsonString = new String(data); } myprint("readResponse jsonString " + jsonString); return jsonString.toString(); } catch (IOException e) { e.printStackTrace(); myprint("readResponse IOExceptionException " + e); return new String(); } } private String getAuthDAta(String urlTimeline) { SignaturesGeneratorForTimeline signaturesGeneratorForTimeline = new SignaturesGeneratorForTimeline(MainSingleTon.currentUserModel, MainSingleTon.TWITTER_KEY, MainSingleTon.TWITTER_SECRET, "GET"); signaturesGeneratorForTimeline.setUrl(urlTimeline); String GeneratedPerams = null; try { // UNSORTED // GeneratedPerams = // "OAuth " + signaturesGeneratorForTimeline.OAUTH_CONSUMER_KEY +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.getcKey(),"ISO-8859-1") // +"\", " + signaturesGeneratorForTimeline.OAUTH_SIGNATURE_METHOD +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.HMAC_SHA1,"ISO-8859-1") // +"\", " + signaturesGeneratorForTimeline.OAUTH_TIMESTAMP +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.currentTimeStamp,"ISO-8859-1") // +"\", " + signaturesGeneratorForTimeline.OAUTH_NONCE +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.currentOnonce,"ISO-8859-1") // +"\", " + signaturesGeneratorForTimeline.OAUTH_VERSION +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.VERSION_1_0,"ISO-8859-1") // +"\", " + signaturesGeneratorForTimeline.OAUTH_TOKEN +"=\"" + URLEncoder.encode(MainSingleTon.currentUserModel.getUserAcessToken(),"ISO-8859-1") // +"\", " + signaturesGeneratorForTimeline.OAUTH_SIGNATURE +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.getOauthSignature(),"ISO-8859-1")+"\"" ; // SORTED GeneratedPerams = "OAuth " + signaturesGeneratorForTimeline.OAUTH_CONSUMER_KEY +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.getcKey(),"ISO-8859-1") +"\", " + signaturesGeneratorForTimeline.OAUTH_NONCE +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.currentOnonce,"ISO-8859-1") +"\", " + signaturesGeneratorForTimeline.OAUTH_SIGNATURE +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.getOauthSignature(),"ISO-8859-1") +"\", " + signaturesGeneratorForTimeline.OAUTH_SIGNATURE_METHOD +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.HMAC_SHA1,"ISO-8859-1") +"\", " + signaturesGeneratorForTimeline.OAUTH_TIMESTAMP +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.currentTimeStamp,"ISO-8859-1") +"\", " + signaturesGeneratorForTimeline.OAUTH_TOKEN +"=\"" + URLEncoder.encode(MainSingleTon.currentUserModel.getUserAcessToken(),"ISO-8859-1") +"\", " + signaturesGeneratorForTimeline.OAUTH_VERSION +"=\"" + URLEncoder.encode(signaturesGeneratorForTimeline.VERSION_1_0,"ISO-8859-1")+"\""; } catch (UnsupportedEncodingException e) { e.printStackTrace(); myprint("GeneratedPerams UnsupportedEncodingException "+ e); } String authenticateString = GeneratedPerams; String authData = authenticateString; return authData; } public static void myprint(Object msg) { System.out.println(msg.toString()); } }