Как запросить данные (GET) с токеном носителя на android java? - PullRequest
0 голосов
/ 03 апреля 2020

Я получил весеннюю загрузку веб-службы от моего босса, которая выглядит следующим образом:

Метод: POST

url: http://ipaddress/HSI/token/generate-token

Body JSON   : 
{
    "username": "admin",
    "password": "pw123"
}   

Я также пробовал этот API на почтальоне с этим:

Метод: GET

Авторизация: Токен на предъявителя

Токен: Токен строки из пункта 1

URL: http://ipaddress/HSI/emp/008800

Я получил токен после входа в систему с почтальоном, и теперь я хочу реализовать запрошенные данные через JAVA Android. Я использовал модификацию, чтобы получить токен и получить доступ к данным. Но, тем не менее, это не сработало вообще, я никогда раньше не использовал весеннюю загрузку и никогда раньше не пытался подключить этот веб-сервис с весенней загрузкой к своему android. Должен ли я использовать обычное модернизированное соединение или оно отличается? ... может быть, есть какие-нибудь предложения или учебные пособия?

Это то, что я пробовал:

public class MainActivity extends AppCompatActivity {

private String token = "tokenkey";
Button btnLogin, btnSecret;
TextView txtString;

OkHttpClient client = new OkHttpClient();
public String url= "http://ipaddress/HSI/emp/008800";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    txtString= (TextView)findViewById(R.id.txtString);

    btnLogin = findViewById(R.id.button);
    btnLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            btnLogin.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                }
            });
        }
    });

    btnSecret = findViewById(R.id.button2);
    btnSecret.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        }
    });

    try {
        run();
    } catch (IOException e){
        e.printStackTrace();
    }

}

void run() throws IOException{
    OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder()
            .addHeader("Authorization", "Bearer " + token)
            .url(url)
            .build();
    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(@NotNull Call call, @NotNull IOException e) {
            call.cancel();
        }

        @Override
        public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
            final String myResponse = response.body().string();
            MainActivity.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    txtString.setText(myResponse);
                }
            });
        }
    });
}}

И код ошибки:

E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.cobaretrofit, PID: 26461 java .lang.RuntimeException: Невозможно создать экземпляр действия ComponentInfo {com.example.cobaretrofit / com. Например == / base.apk "], nativeLibraryDirectories = [/ data / app / com.example.cobaretrofit-AMFlOGilKNUSHmk0QzJ22g == / lib / arm64, / system / lib64, / system / vendor / lib64]] в android .app .ActivityThread.performLaunchActivity (ActivityThread. java: 2841) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 3032) в android .app.ActivityThread.-wrap11 (Неизвестный источник: 0) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1696) в android .os.Handler.dispatchMessage (Обработчик. java: 105) в android .os.Looper.l oop (Looper. java : 164) в android .app.ActivityThread.main (ActivityThread. java: 6944) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.Zygote $ MethodAndArgsCaller.run (Zygote. java: 327) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 1374). Причина: java .lang.ClassNotFoundException: не было найти класс "com.example.cobaretrofit.MainActivity" по пути: DexPathList [[zip-файл "/data/app/com.example.cobaretrofit-AMFlOGilKNUSHmk0QzJ22g==/base.apk"],nativeLibraryDirectories=com/data/ .example.cobaretrofit-AMFlOGilKNUSHmk0QzJ22g == / lib / arm64, / system / lib64, / system / vendor / lib64]] в dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader. java: 93) в java .lan. ClassLoader.loadClass (ClassLoader. java: 379) в java .lang.ClassLoader.loadClass (ClassLoader. java: 312) в android .app.Instrumentation.newActivity (Инструментарий) on. java: 1180) в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 2831) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 3032) в android .app.ActivityThread.-wrap11 (неизвестный источник: 0) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1696) в android .os.Handler.dispatchMessage (обработчик. java : 105) в android .os.Looper.l oop (Looper. java: 164) в android .app.ActivityThread.main (ActivityThread. java: 6944) в java .lang .reflect.Method.invoke (собственный метод) на com. android .internal.os.Zygote $ MethodAndArgsCaller.run (Zygote. java: 327) на com. android .internal.os.ZygoteInit.main ( ZygoteInit. java: 1374) Исключено: java .io.IOException: Не удалось открыть файлы dex из /data/app/com.example.cobaretrofit-AMFlOGilKNUSHmk0QzJ22g==/base.apk из-за: Ошибка проверки файла dex ' /data/app/com.example.cobaretrofit-AMFlOGilKNUSHmk0QzJ22g==/base.apk ': неверный дескриптор метода типа 7 в dalvik. system.DexFile.openDexFileNative (собственный метод) в dalvik.system.DexFile.openDexFile (DexFile. java: 353) в dalvik.system.DexFile. (DexFile. java: 100) в dalvik.system.DexFile. ( DexFile. java: 74) в dalvik.system.DexPathList.loadDexFile (DexPathList. java: 374) в dalvik.system.DexPathList.makeDexElements (DexPathList. java: 337) в dalvik.system.DexPathL. DexPathList. java: 157) в dalvik.system.BaseDexClassLoader. (BaseDexClassLoader. java: 65) в dalvik.system.PathClassLoader. (PathClassLoader. java: 64) в com. android .internal.os .PathClassLoaderFactory.createClassLoader (PathClassLoaderFactory. java: 43) в android .app.ApplicationLoaders.getClassLoader (ApplicationLoaders. java: 69) в android .app.ApplicationLoaders.getCardLoader .19: Application (11) ) в android .app.LoadedApk.createOrUpdateClassLoaderLocked (LoadedApk. java: 678) в android .app.LoadedApk.getClassLoader (LoadedApk. java: 711) в android .app.LoA. LoadedApk. java: 944) в android .app.ContextImpl.createA ppContext (ContextImpl. java: 2303) в android .app.ActivityThread.handleBindApplication (ActivityThread. java: 5943) в android .app.ActivityThread.-wrap1 (Неизвестный источник: 0) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1764) ... еще 6

кобаретит-графт: enter image description here

приложение Gradle: enter image description here

Спасибо

...