Problem in upload image on twitter using blackberry


#1

Hi Sir ,
I have some problem when uploading image on twitter .
i am able to update status successfully but when uploading image it give error “Bad Authentication data”.
i am trying like this

public static void postImage(Token token) {
Hashtable params = new Hashtable();
params.put(“status”, “Hello How r u?”);
try {
InputStream ios = Utilities.class.getResourceAsStream("/videotalkies_68.png");
byte[] fileBytes = getUrlEncodeData(IOUtilities.streamToBytes(ios));

		Credential credential = new Credential(Constant.CONSUMER_KEY, Constant.CONSUMER_SECRET, token);
		UserAccountManager m = UserAccountManager.getInstance(credential);
		if (m.verifyCredential()) {
			XAuthSigner oAuthSigner = new XAuthSigner(Constant.CONSUMER_KEY, Constant.CONSUMER_SECRET);
			Hashtable headers =getHeaderssignForAccessToken(credential.getUsernameOrEmail(), credential.getString(MetadataSet.CREDENTIAL_PASSWORD));
			byte[] bs = new HttpMultipartRequest("https://api.twitter.com/1.1/statuses/update_with_media.json", params, "media[]", "videotalkies_68.png", "application/octet-stream", fileBytes, headers).send();
			System.out.println("Utilities.postImage()==out====\n" + new String(bs));
		}
	} catch (Exception e) {
		System.out.println("Utilities.postImage()Error=========" + e.getMessage() + '\t' + e.getClass().getName());
	}
}

private static byte[] getUrlEncodeData(byte[] streamToBytes) {
	String data = URLUTF8Encoder.encode(new String(streamToBytes));
	return data.getBytes();
}

public Hashtable getHeaderssignForAccessToken(String username, String password) {
Hashtable headers = new Hashtable();

	headers.put(OAuthConstants.MODE, "client_auth");
	headers.put(OAuthConstants.USERNAME, username);
	headers.put(OAuthConstants.PASSWORD, password);
	//
	OAuthParameters params = new OAuthParameters(consumerKey);
	//
	// String str = getSignatureBaseString(req, params);
	//
	String str = getSignature("", consumerSecret, OAuthConstants.EMPTY_TOKEN_SECRET);
	params.put(OAuthConstants.SIGNATURE, str);
	//
	str = params.getAuthorizationHeaderValue();
	headers.put(OAuthConstants.HEADER, str);
	return headers;
}

Can someone Help me?