Генерация cookies для отправки post-запросов на java
Мне понадобился переводчик. Покупать api у yandex, google или еще каких-либо кампаний возможности нет. Решил делать перевод через запросы. Открыл https://www.bing.com/translator и в FireFox через NetWork monitor отследил, что отправлется в виде post-запроса, когда я перевожу строку через браузер. Осталось переписать все заголовки, и будет готов post-запрос на java, в ответе которого будет перевод моего текста. Вот мой код
public String translate(String textToTranslate) throws Exception {
String text = textToTranslate.replace("'", "");
List<String> dzenArticleUrls = new ArrayList<>();
HttpClient client = new HttpClient();
PostMethod post = new PostMethod("https://www.bing.com/tspellcheckv3?isVertical=1");
post.addRequestHeader("Accept", "*/*");
post.addRequestHeader("Accept-Encoding", "gzip, deflate, br");
post.addRequestHeader("Accept-Language", "en-US,en;q=0.5");
post.addRequestHeader("Connection", "keep-alive");
post.addRequestHeader("Content-Type", "application/x-www-form-urlencoded");
post.addRequestHeader("DNT", "1");
post.addRequestHeader("Host", "www.bing.com");
post.addRequestHeader("Origin", "https://www.bing.com");
post.addRequestHeader("Referer", "https://www.bing.com/translator");
post.addRequestHeader("User-Agent", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0");
post.addRequestHeader("Cookie", "MUID=3264D2AF1AD36DCF2653DD231B676C13; MUIDB=3264D2AF1AD36DCF2653DD231B676C13; _EDGE_S=F=1&SID=356C9DC8CA5A639E25EF9244CBEE6291; _EDGE_V=1; SRCHD=AF=NOFORM; SRCHUID=V=2&GUID=78DD7A6340FC44319891F67538740FD1&dmnchg=1; SRCHUSR=DOB=20201124&T=1606226453000; _SS=SID=356C9DC8CA5A639E25EF9244CBEE6291; _tarLang=default=ru; _TTSS_OUT=hist=WyJydSJd; SRCHHPGUSR=HV=1606226516&WTS=63741823253; ipv6=hit=1606230056323&t=4; btstkn=PuXbLUBQdrdKtF%252B86P5tqSQ1NEjzqT39mLC4XI7T7ozOIXNO4L0uetpblDCAFOMS");
NameValuePair[] body = {
new NameValuePair("fromLang", "auto-detect"),
new NameValuePair("text", text),
new NameValuePair("to", "ru"),
};
post.setRequestBody(body);
int statudcode = client.executeMethod(post);
String postRespose = post.getResponseBodyAsString();
Gson gson = new Gson();
return getTranslateResult(gson.fromJson(postRespose, Object.class));
}
Проблема в том, что в строке post.addRequestHeader("Cookie",...) Cookie был скопирован из браузера, и код работает до тех пор, пока у этого Cookie не истек срок годности, скажем так. Каким образом я могу генерировать строку для Cookiе автоматически? Возможно ли как-то эмитировать работу браузера программно?