如何在JavaFX程序中进行在线登录
How to make an online login in JavaFX program
所以我尝试用JavaFX制作一个程序来上传ebay上的图片和ebay交易api。
我收到了第一个让用户同意工作的请求,我得到了 200 的响应代码,这很好。
但是我不知道如何与响应交互。
我得到它写入控制台。
但是我需要它来像浏览器一样打开一个新的 window,并在登录并同意后获得 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 文本(如果需要确切的代码,我可以提供,但目前我认为信息量很大,目前并不重要)。
感谢您的宝贵时间!
编辑:我只是想了一下,看到您可以使用网络查看器和显示,同时获得 URL。这个视频对我帮助最大:https://www.youtube.com/watch?v=P9z1dRPmeUQ
(希望你现在开心;D)
所以我尝试用JavaFX制作一个程序来上传ebay上的图片和ebay交易api。 我收到了第一个让用户同意工作的请求,我得到了 200 的响应代码,这很好。 但是我不知道如何与响应交互。 我得到它写入控制台。 但是我需要它来像浏览器一样打开一个新的 window,并在登录并同意后获得 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 文本(如果需要确切的代码,我可以提供,但目前我认为信息量很大,目前并不重要)。
感谢您的宝贵时间!
编辑:我只是想了一下,看到您可以使用网络查看器和显示,同时获得 URL。这个视频对我帮助最大:https://www.youtube.com/watch?v=P9z1dRPmeUQ
(希望你现在开心;D)