[JAVA] Mémo API Niconico (Voyons voir et imitons)

Bibliothèque d'API Niconico

https://github.com/fujiriko59/nico-api-client

J'ai utilisé celui dans, mais je lançais des erreurs liées à l'analyse des cookies et XML, alors j'ai décidé de le créer à partir de zéro. J'ai également utilisé Gladle sur Android, j'ai donc décidé de gérer le projet avec Gladle. Sera publié à une date ultérieure.

J'avais fait des allers-retours depuis plusieurs heures,

https://teratail.com/questions/31972

Cela fonctionnait quand je parlais Malheureusement, je n'ai aucune connaissance liée à Http **.

Login


    public static void login_test_from_teratail(){
        try {
            URI uri = new URI("https://secure.nicovideo.jp/secure/login?site=niconico");
            String mail = "Hydromel ici";
            String pass = "Mot de passe ici";
            HttpPost httpPost = new HttpPost(uri);

            RequestConfig requestConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD).build();
            httpPost.setConfig(requestConfig);

            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("mail", mail));
            params.add(new BasicNameValuePair("password", pass));
            httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));

            HttpClient httpClient = HttpClientBuilder.create().build();
            HttpResponse httpResponse = httpClient.execute(httpPost);



            //Résultat POST
            String response1 = httpResponse.toString();
            String response2 ="";
            for (String str : response1.split(",",0)){
                response2 += str+"\n";
            }

            System.out.println(response2);

        }catch (Exception e){
            e.printStackTrace();
        }
    }

Passer à HttpURLConnection

Dans le commentaire, j'ai souligné que HttpClient d'Apache n'est pas recommandé, j'ai donc décidé d'utiliser CustomHttpClient par moi-même en utilisant HttpURLConnection. Cependant, ici aussi, il existe de nombreux problèmes liés aux cookies. Après enquête, il semble y avoir un tel problème. --La date d'expiration du cookie est définie sur 0 en définissant l'heure pour chaque région (résolu à partir du 03/02/2017)

Par conséquent, l'ID de session ne peut pas être obtenu correctement. Par conséquent, j'ai décidé d'utiliser Class à partir du site suivant.

http://tomott.cocolog-nifty.com/blog/files/CorrectedCookieManager.java

Citation: http://tomott.cocolog-nifty.com/blog/2010/09/javecookie5-5d9.html

Cela fait un moment depuis la dernière modification. Décrivez ce dont vous vous souvenez.

À propos du téléchargement de données vidéo

Lorsque je prépare un cookie et frappe directement l'URL de la vidéo, 403 est renvoyé. Donc, avant cela, vous devez accéder à certaines URl.

Problème 64K

Un problème où les générations et les exécutions échouent lorsque le nombre total de méthodes dépasse 64 Ko.

https://developer.android.com/studio/build/multidex.html

État actuel du concept tel que Http Cookie

Il y avait un bon article donc je vais y faire référence

http://qiita.com/mogulla3/items/189c99c87a0fc827520e

Spécifier les cookies avec setVideoUri dans VideoView

http://www.binzume.net/diary/2010-10-04:A1

Comme écrit, je pensais que j'avais des problèmes car je pouvais spécifier Uri mais pas les cookies, mais quand j'ai regardé le site Android Developer,

setVideoURI


void setVideoURI (Uri uri, Map<String, String> headers)

A été ajouté au niveau API 21. Cela semble être une solution.

Recommended Posts

Mémo API Niconico (Voyons voir et imitons)
Mémo pour la création d'API Niconico (Matériaux)
Mémo API Stream
essayons! Apache Derby