Настой к андроид студии - PullRequest
1 голос
/ 01 мая 2019

У меня сейчас эта проблема уже почти 8 часов; Я перепробовал все ответы с той же проблемой, что и сейчас, но решение пока не найдено;

То, что я пытаюсь сделать, это чтобы связаться с колбой на Android с помощью URL; так как он локальный, я уже установил хост «0.0.0.0», чтобы он был доступен глобально, и попробую этот URL-адрес для моего андроида «10 .0.2.2: 5000», «10 .0.3.2: 5000», «192.168.XX: 5000», «127.0.0.1:5000», и разрешить мой порт брандмауэру, и все равно ничего не работает, я уже ищу все те же проблемы, которые у меня есть в настоящее время, и решения не работают.

вот мой код Python:

#from app file

import os

from flask import Flask

app = Flask(__name__)
app.secret_key = b'MYKEY'

from blueprints import *

@app.errorhandler(404)
def page_not_found(error):
    return 'page not found', 404

if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0', port=5000)

#from __init__ of blueprint

from app import app

from blueprints.routes.admin import admin_route
from blueprints.routes.android import android_route

app.register_blueprint(admin_route)
app.register_blueprint(android_route)


#from my routes where should android manipulate

from flask import Blueprint

android_route = Blueprint('android', __name__)

@android_route.route('/android/login')
def login():
    return 'hello'


А вот мой URL для Android:

package com.example.test.Link;

/*
*
*
* All link for contacting the server
* will be put here.
*
* */

public class UrlLink {

    private static final String API_TOKEN  = "1234567890";
    private static final String DOMAIN = "http://<I ALMOST TRY ALL IP>:5000";

    /*
        Links to use
     */

    public static final String login = DOMAIN  + "/android/login";
}

Также я пытаюсь запустить это на PHP с помощью xampp и работает нормально; но в колбе выдает ошибку об этом:

W/System.err: java.io.FileNotFoundException: http://10.0.2.2:5000/android/login
        at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:206)
        at com.example.swiftpin.URL.Http.post(Http.java:61)
        at com.example.swiftpin.URL.ConnectHttp.doInBackground(ConnectHttp.java:88)
        at com.example.swiftpin.URL.ConnectHttp.doInBackground(ConnectHttp.java:15)
        at android.os.AsyncTask$2.call(AsyncTask.java:292)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:818)

1 Ответ

0 голосов
/ 03 мая 2019

Теперь я нашел решение, единственная проблема в том, что я отправляю сообщение методом, который не принимается в питоне;

вместо этого:

@android_route.route('/android/login')
def login():
    return 'hello'

Я забыл включить туда метод, Так было бы так:

@android_route.route('/android/login', methods = ['GET', 'POST'])
def login():
    return 'hello'

Я выясняю это, когда пытаюсь использовать метод get, и это дает мне результат, но когда я использую метод post, ничего не происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...