+7(499)4906987
г. Москва
e-mail: ratnikov_s@list.ru
Работа с данными API для получения данных о компания и ИП.

Работа с данными API для получения данных о компания и ИП.

В данной статье я расскажу как можно получить данные о компаниях через открытое API сайта ru.rus.company зная ИНН компании.

 

Для начала добавим разрешения на использование интернет в AndrodManifest.xml.

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.ratnikoff.innreader">


    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />

 

    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:roundIcon="@mipmap/ic_launcher_round"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

 

</manifest>

 

Создадим layout для ввода ИНН:

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">

 

    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="horizontal">

 

        <EditText

            android:id="@+id/InnEditText"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="5" />

 

        <Button

            android:id="@+id/InnSearch"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="Поиск" />

    </LinearLayout>

 

    <ScrollView

        android:layout_width="match_parent"

        android:layout_height="match_parent">

        <TextView

            android:id="@+id/text"

            android:layout_width="match_parent"

            android:layout_height="match_parent" />

    </ScrollView>

</LinearLayout>

 

Вот что у нас получилось.

 

 

И наконец сам код.

 

package com.ratnikoff.innreader;

 

import android.os.AsyncTask;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

 

import org.json.JSONException;

import org.json.JSONObject;

 

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.MalformedURLException;

import java.net.URL;

 

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        Button buttonSearch = (Button) findViewById(R.id.InnSearch);

        buttonSearch.setOnClickListener(this);

 

    }

 

    @Override

    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.InnSearch:

                ReadHttpInn readHttpInn = new ReadHttpInn();

                readHttpInn.execute();

                break;

        }

    }

 

    public class ReadHttpInn extends AsyncTask<Void, Void, Void> {

        private String urlINN = "https://ru.rus.company/%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1

%86%D0%B8%D1%8F/%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8/?%D0%B8%D0%BD%D0%BD=";

        private String urlID = "https://ru.rus.company/%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F/%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8/";

        String Inn;

        String inputLine;

        URL url;

        private JSONObject jObj;

        private JSONObject jObjFull;

        private JSONObject jObjAdress;

 

        @Override

        protected void onPreExecute() {

            EditText editText = (EditText) findViewById(R.id.InnEditText);

            Inn = String.valueOf(editText.getText());

            super.onPreExecute();

        }

 

        @Override

        protected Void doInBackground(Void... params) {

            StringBuilder stringBuilder = new StringBuilder();

 

            try {

                // Вычитывание данных по инн

                url = new URL(urlINN + Inn);

                BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

                while ((inputLine = in.readLine()) != null) {

                    stringBuilder.append(inputLine);

                }

                in.close();

                String jsonString = stringBuilder.toString();

                jsonString = jsonString.substring(2, jsonString.length() - 2) + "";

 

                // Вычитывание данных по id

                jObj = new JSONObject(jsonString);

                stringBuilder = new StringBuilder();

                url = new URL(urlID + jObj.getString("id") + "/");

                in = new BufferedReader(new InputStreamReader(url.openStream()));

                while ((inputLine = in.readLine()) != null) {

                    stringBuilder.append(inputLine);

                }

                in.close();

                jsonString = stringBuilder.toString();

                jObjFull = new JSONObject(jsonString);

            } catch (MalformedURLException e) {

                e.printStackTrace();

            } catch (IOException e) {

                e.printStackTrace();

            } catch (JSONException e) {

                e.printStackTrace();

            }

            return null;

        }

 

        @Override

        protected void onPostExecute(Void aVoid) {

            TextView textView = (TextView) findViewById(R.id.text);

            String temp = null;

            try {

                temp = jObj.getString("shortName");

            } catch (JSONException e) {

                e.printStackTrace();

            }

            textView.append("Наименование организации:" + temp + "\n");

 

            try {

                temp = jObjFull.getJSONObject("address").getString("fullHouseAddress");

            } catch (JSONException e) {

                e.printStackTrace();

            }

            textView.append("Адрес организации:" + temp + "\n");

            super.onPostExecute(aVoid);

        }

    }

}

 

В резульате мы получаем следующие данные.

 

 

C Уважение Ратников С.И.

Необходимо согласие на обработку персональных данных