다음은 Android Volley 코드입니다.
// I already add the uses-permission for INTERNET to manifest
<uses-permission android:name="android.permission.INTERNET" />
// and add volley to gradle depedencies
compile 'com.android.volley:volley:1.0.0'
StringRequest stringRequest;
RequestQueue mRequestQueue;
String url = "http://localhost:5000/bacon"; // This is the localhost to FLask
RequestQueue queue = Volley.newRequestQueue(BaconActivity.this);
stringRequest = new StringRequest(
Request.Method.GET,
url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(BaconActivity.this, response, Toast.LENGTH_SHORT).show();
redirectLinkToLogin();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(BaconActivity.this, "That didn't work!", Toast.LENGTH_SHORT).show();
}
}
);
queue.add(stringRequest);
이것은 Flask 코드입니다.
from flask import Flask, request
app = Flask(__name__)
@app.route('/bacon', methods=['GET', 'POST'])
def bacon():
if request.method == 'GET':
return 'You are probably using GET'
else:
return 'You are probably using POST'
if __name__ == "__main__":
app.run(debug=True, host='localhost')
앱을 실행할 때 Volley가 Flask에 연결되지 않았습니다 (앱을 실행하기 전에 이미 Flask를 실행했습니다). 따라서 반환 문자열을 검색하는 대신 코드는 매번 Response.ErrorListener로 실행됩니다.
Flask에서 localhost로 반환 문자열을 가져오고 반환 문자열을 토스트하려고합니다.
String url = "http://localhost:5000/bacon"; // This is the localhost to FLask
사실은 아닙니다. 실행중인 장치의 로컬 호스트입니다. 에뮬레이터 든 실제 Android 기기 든 상관 없습니다.
Flask가 필요할 수도 있습니다. host='0.0.0.0'
Flask를 실행하는 컴퓨터의 실제 IP를 사용해야합니다. Android 에뮬레이터는을 사용합니다 10.0.2.2
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다