Как сделать онлайн вход в программу JavaFX - PullRequest
0 голосов
/ 29 июня 2019

Поэтому я пытаюсь создать программу с JavaFX для загрузки изображений на eBay с помощью API eBay Trading. Я получил первый запрос, чтобы получить согласие пользователя, и я получил код ответа 200, что хорошо, и все. Но я понятия не имею, как взаимодействовать с ответом. Я получил это, чтобы написать на консоль. Но мне нужно, чтобы он открыл новое окно, например, браузер, и после входа в систему и получения согласия получил URL, чтобы я мог сделать запрос на токен доступа.

Это код, который я использую для выполнения запроса (я все еще очень плохо знаком со всем, что касается запросов API / HTTP, поэтому, если есть более простой способ, я буду открыт для чего-либо!)

import java.awt.*;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;

import javax.net.ssl.HttpsURLConnection;

public class Test {

    private final String USER_AGENT = "Mozilla/5.0";

    public static void main(String[] args) throws Exception {

        Desktop d = Desktop.getDesktop();
        d.browse(new URI("https://auth.sandbox.ebay.com/oauth2/authorize?client_id=ErikAlav-SandboxT-SBX-c1e8de676-5cd1c434&redirect_uri=Erik_Alaverdyan-ErikAlav-Sandbo-eohtlzvjq&response_type=code&state=HALLO_ES_HAT_GEKLAPPT&scope=https://api.ebay.com/oauth/api_scope"));

        Test http = new Test();

        System.out.println("Testing 1 - Send Http GET request");
        http.sendGet();


    }

    // HTTP GET request
    private void sendGet() throws Exception {

        String url = "https://auth.sandbox.ebay.com/oauth2/authorize?client_id=ErikAlav-SandboxT-SBX-c1e8de676-5cd1c434&redirect_uri=Erik_Alaverdyan-ErikAlav-Sandbo-eohtlzvjq&response_type=code&state=HALLO_ES_HAT_GEKLAPPT&scope=https://api.ebay.com/oauth/api_scope";

        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // optional default is GET
        con.setRequestMethod("GET");

        //add request header
        con.setRequestProperty("User-Agent", USER_AGENT);

        int responseCode = con.getResponseCode();
        System.out.println("\nSending 'GET' request to URL : " + url);
        System.out.println("Response Code : " + responseCode);

        BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        //print result
        System.out.println(response.toString());

    }
}

Результатом этого является только HTML-текст сайта (если нужен точный код, я могу его предоставить, но пока я думаю, что много информации и пока не важно).

Спасибо за ваше время!

1 Ответ

0 голосов
/ 30 июня 2019

РЕДАКТИРОВАТЬ: я просто подумал об этом и увидел, что вы можете использовать веб-обозреватель и отображать и в то же время получить URL. Это видео помогло мне больше всего: https://www.youtube.com/watch?v=P9z1dRPmeUQ

(надеюсь, теперь ты счастлив; D)

...