mirror of
https://github.com/jwdeveloper/TikTokLiveJava.git
synced 2026-03-01 17:59:39 -05:00
Establish connection with websocket
This commit is contained in:
@@ -5,19 +5,11 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class TikTokCookieJar {
|
||||
/// <summary>
|
||||
/// Cookies in Jar
|
||||
/// </summary>
|
||||
private final Map<String, String> cookies;
|
||||
|
||||
/// <summary>
|
||||
/// Create a TikTok cookie jar instance.
|
||||
/// </summary>
|
||||
public TikTokCookieJar() {
|
||||
cookies = new HashMap<>();
|
||||
}
|
||||
|
||||
|
||||
public String get(String key) {
|
||||
return cookies.get(key);
|
||||
}
|
||||
@@ -26,19 +18,17 @@ public class TikTokCookieJar {
|
||||
cookies.put(key, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Enumerates Cookies
|
||||
/// </summary>
|
||||
public Set<Map.Entry<String, String>> GetEnumerator() {
|
||||
return cookies.entrySet();
|
||||
}
|
||||
|
||||
/* /// <summary>
|
||||
/// Enumerates Cookies
|
||||
/// </summary>
|
||||
public IEnumerator<string> GetEnumerator()
|
||||
public String parseCookies()
|
||||
{
|
||||
foreach (var cookie in cookies)
|
||||
yield return $"{cookie.Key}={cookie.Value};";
|
||||
}*/
|
||||
var sb = new StringBuilder();
|
||||
for(var entry : cookies.entrySet())
|
||||
{
|
||||
sb.append(entry.getKey()).append("=").append(entry.getValue()).append(";");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,17 +11,21 @@ import java.net.URI;
|
||||
import java.net.http.HttpClient;
|
||||
import java.net.http.HttpRequest;
|
||||
import java.net.http.HttpResponse;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
public class TikTokHttpApiClient {
|
||||
private final ClientSettings clientSettings;
|
||||
private final TikTokHttpRequestFactory requestFactory;
|
||||
private final TikTokCookieJar tikTokCookieJar;
|
||||
|
||||
public TikTokHttpApiClient(ClientSettings clientSettings, TikTokHttpRequestFactory requestFactory) {
|
||||
|
||||
public TikTokHttpApiClient(TikTokCookieJar tikTokCookieJar, ClientSettings clientSettings, TikTokHttpRequestFactory requestFactory) {
|
||||
this.clientSettings = clientSettings;
|
||||
this.requestFactory = requestFactory;
|
||||
this.tikTokCookieJar = tikTokCookieJar;
|
||||
}
|
||||
|
||||
|
||||
@@ -68,6 +72,18 @@ public class TikTokHttpApiClient {
|
||||
.build();
|
||||
var response = client.send(request, HttpResponse.BodyHandlers.ofByteArray());
|
||||
|
||||
var cookies = response.headers().allValues("Set-Cookie");
|
||||
for(var cookie : cookies)
|
||||
{
|
||||
var split = cookie.split(";")[0].split("=");
|
||||
|
||||
|
||||
var key = split[0];
|
||||
var value = split[1];
|
||||
tikTokCookieJar.set(key, value);
|
||||
var i =0;
|
||||
}
|
||||
|
||||
return response.body();
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -80,7 +96,7 @@ public class TikTokHttpApiClient {
|
||||
private String GetSignedUrl(String url, Map<String, Object> parameters) {
|
||||
|
||||
var fullUrl = HttpUtils.parseParameters(url,parameters);
|
||||
var singHeaders = new HashMap<String, Object>();
|
||||
var singHeaders = new TreeMap<String,Object>();
|
||||
singHeaders.put("client", "ttlive-net");
|
||||
singHeaders.put("uuc", 1);
|
||||
singHeaders.put("url", fullUrl);
|
||||
@@ -95,7 +111,6 @@ public class TikTokHttpApiClient {
|
||||
var signedUrl = jsonObject.get("signedUrl").getAsString();
|
||||
var userAgent = jsonObject.get("User-Agent").getAsString();
|
||||
|
||||
//requestFactory.setHeader()
|
||||
requestFactory.setAgent(userAgent);
|
||||
return signedUrl;
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -11,6 +11,7 @@ import java.net.URLEncoder;
|
||||
import java.net.http.HttpClient;
|
||||
import java.net.http.HttpRequest;
|
||||
import java.net.http.HttpResponse;
|
||||
import java.net.http.WebSocket;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Duration;
|
||||
import java.util.HashMap;
|
||||
@@ -29,9 +30,12 @@ public class TikTokHttpRequestFactory implements TikTokHttpRequest
|
||||
private Boolean sent;
|
||||
private Map<String, String> defaultHeaders;
|
||||
|
||||
public TikTokHttpRequestFactory() {
|
||||
private TikTokCookieJar tikTokCookieJar;
|
||||
|
||||
public TikTokHttpRequestFactory(TikTokCookieJar tikTokCookieJar) {
|
||||
|
||||
cookieManager = new CookieManager();
|
||||
this.tikTokCookieJar = tikTokCookieJar;
|
||||
defaultHeaders = Constants.DefaultRequestHeaders();
|
||||
client = HttpClient.newBuilder()
|
||||
.cookieHandler(cookieManager)
|
||||
@@ -39,6 +43,11 @@ public class TikTokHttpRequestFactory implements TikTokHttpRequest
|
||||
.build();
|
||||
}
|
||||
|
||||
public WebSocket.Builder openSocket()
|
||||
{
|
||||
return client.newWebSocketBuilder();
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public String Get(String url) {
|
||||
var uri = URI.create(url);
|
||||
@@ -124,8 +133,14 @@ public class TikTokHttpRequestFactory implements TikTokHttpRequest
|
||||
{
|
||||
var split = cookie.split(";")[0].split("=");
|
||||
var uri = request.uri();
|
||||
|
||||
|
||||
var key = split[0];
|
||||
var value = split[1];
|
||||
tikTokCookieJar.set(key, value);
|
||||
|
||||
var map = new HashMap<String,List<String>>();
|
||||
map.put(split[0],List.of(split[1]));
|
||||
map.put(key,List.of(value));
|
||||
cookieManager.put(uri,map);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user