Rufen Sie die Rest-API von GitHub über die Socket-API von Java auf

Am Anfang

Ich habe versucht, die Rest-API von GitHub über die Socket-API von Java aufzurufen

Referenzseite

Quelle

Test.java


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.X509TrustManager;

public class Test {
	//Holen Sie sich GitHub-Repository-Informationen mit der GitHub REST API v3
	//Das Format der REST-API v3 lautet
	// /repos/:owner/:repo/contents/:path
	//Wird
	private static final String GITHUB_RESTAPI_PATH = "https://api.github.com/repos/triple4649/MLLearning_Java/contents/src";
	public static void main(String[] args) throws Exception {

		HttpsURLConnection con = createHttpsURLConnection(GITHUB_RESTAPI_PATH);

		//Header-Informationen ausgeben
		System.out.println("----- Headers -----");
		printHeaderFields(con);
		
		//Informationen zum Ausgabekörper
		System.out.println("----- Body -----");
		printBody(con);
		

		con.disconnect();
	}
	
	//Generieren Sie URLConnection für TLS-Verbindung(Zertifizierungsüberprüfung nicht überprüfte Version)
	private static HttpsURLConnection  createHttpsURLConnection (String path) throws Exception{
		SSLSocketFactory factory = null;
		SSLContext ctx = SSLContext.getInstance("TLS");
		ctx.init(null, new NonAuthentication[] { new NonAuthentication() },
				null);
		factory = ctx.getSocketFactory();

		URL url = new URL(path);
		HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
		con.setSSLSocketFactory(factory);
		
		return con;
	}
	
	//Header-Informationen ausgeben
	private static void printHeaderFields(HttpsURLConnection con){
		con.getHeaderFields()
		.entrySet()
		.stream()
		.map(e->String.format("key:%s value:%s", e.getKey(),e.getValue()))
		.forEach(System.out::println);
	}
	
	//Informationen zum Ausgabekörper
	private static void printBody(HttpsURLConnection con) throws Exception{
		new BufferedReader(new InputStreamReader(
				con.getInputStream()))
		.lines()
		.forEach(System.out::println);

	}
}

class NonAuthentication implements X509TrustManager {
	@Override
	public void checkClientTrusted(X509Certificate[] chain, String authType)
			throws CertificateException {
	}

	@Override
	public void checkServerTrusted(X509Certificate[] chain, String authType)
			throws CertificateException {
	}

	@Override
	public X509Certificate[] getAcceptedIssuers() {
		return null;
	}
}

Informationsausgabe an Körperinformationen

Sie können GitHub-Repository-Informationen im JSON-Format abrufen, wie unten gezeigt.

[{"name":"base64",
"path":"src/base64",
"sha":"7fe220c6549e5c90c49a992c8524688122609944",
"size":0,
"url":"https://api.github.com/repos/triple4649/MLLearning_Java/contents/src/base64?ref=master",
"html_url":"https://github.com/triple4649/MLLearning_Java/tree/master/src/base64",
"git_url":"https://api.github.com/repos/triple4649/MLLearning_Java/git/trees/7fe220c6549e5c90c49a992c8524688122609944",
"download_url":null,
"type":"dir",
"_links":{"self":"https://api.github.com/repos/triple4649/MLLearning_Java/contents/src/base64?ref=master",
"git":"https://api.github.com/repos/triple4649/MLLearning_Java/git/trees/7fe220c6549e5c90c49a992c8524688122609944",
"html":"https://github.com/triple4649/MLLearning_Java/tree/master/src/base64"}},

Recommended Posts

Rufen Sie die Rest-API von GitHub über die Socket-API von Java auf
Rufen Sie die GitHub-API über Javas Socket-API Teil2 auf
Rufen Sie die Java-API von TensorFlow von Scala aus auf
Aufruf API [Aufruf]
Rufen Sie die Salesforce REST-API von Java aus auf
API aufrufen [Vorbereitung]
API aufrufen [Handling]
Rufen Sie Java von JRuby aus auf
API aufrufen [Core Edition]