Для входа в Steam нужен ключ RSA. Я создал почтовый запрос с HttpClient от java 11, чтобы получить ключ, но он возвращает тело: {"success": false} - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь создать парового бота с java. У меня есть следующий код, который отправляет сообщения в Steam:

HttpClient client = HttpClient.newBuilder().build();
        String data = "{\"username\" : " + "\"" + USERNAME + "\"}";

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://store.steampowered.com/login/getrsakey"))
                .headers("User-Agent", "Mozilla/5.0", "Content-Type", "application/json; charset=UTF-8")
                .POST(HttpRequest.BodyPublishers.ofString(data))
                .build();

        try{
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            System.out.println(response);
            System.out.println("Body : " + response.body());
            System.out.println("StatusCode : " + response.statusCode());

        }
        catch(IOException | InterruptedException e){
            System.out.println("IOException : " + e.getMessage());
        }

Он возвращает следующее:

(POST https://store.steampowered.com/login/getrsakey) 200
Body : {"success":false}
StatusCode : 200

Я сделал это с python, используя запросы, и это работает. Ниже приведен код, который работает с python:

import requests;

print(requests.post("https://steamcommunity.com/login/getrsakey/", params={"username": "AdwaitBot"}).content)

Я не понимаю, в чем проблема с моим java кодом. Любая помощь или совет будут оценены. Спасибо за помощь.

1 Ответ

0 голосов
/ 22 апреля 2020

params в вашем коде python означает параметры запроса в URI, а не в теле запроса. Фактический запрос, который вы делаете в python, равен POST https://steamcommunity.com/login/getrsakey/?username=AdwaitBot В java вы должны соответственно сформировать свой URI.

...