這篇文章將為大家詳細講解有關使用python搭建服務器并實現Android端與之通信的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
服務端
環境:服務端使用Python3.5+PyCharm
新建Flask項目
看圖:
然后create,初始化完成之后項目結構應該類似如下:
其實這時候直接啟動項目就可以在瀏覽器訪問到:
這就是使用現成框架的好處hhh,但是我們希望實現與客戶端的通信,自然需要再做進一步code.
編寫代碼接受來自客戶端的數據
首先我們看一下hello_world的代碼:
@app.route('/') def hello_world(): return 'Hello World!'
這里@app.route(‘/')意思就是訪問你服務端地址時調用這個方法,所以我們可以通過這種方式實現自己的需求,比如:
@app.route('/demo', methods=['POST']) def demo(): value = request.form['demo_tag'] print(value) return "ok"
上面代碼的意思就是你可以通過 http://127.0.0.1:5000/demo
訪問到demo方法,request.form[‘demo_tag']的返回值是你客戶端發送的tag為demo_tag的數據,下文會詳細介紹如何發送數據,最后返回值你可以自己指定,這里隨便給了一個。到這里服務端已經ok了,我們看看客戶端如何實現.
Android端
客戶端使用Okhttp,需要導入兩個jar包,地址
jar包下載地址: http://square.github.io/okhttp/
注意2個jar包都要,圖中3個圈點完就ok了,下載到本地自己導入,這部分就不詳細寫了,不會導入的可以Google一下。
如果不想手動導入jar包可以:
implementation ‘com.squareup.okhttp3:okhttp:3.11.0'
導入之后直接看代碼:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ok = findViewById(R.id.ok); username = findViewById(R.id.username); password = findViewById(R.id.password); ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String name = String.valueOf(username.getText()); String pass = String.valueOf(password.getText()); String url = "http://112.86.199.151:5000/gesture";//替換成自己的服務器地址 SendMessage(url, name, pass); } }); } private void SendMessage(String url, final String userName, String passWord) { value = new float[550]; Random random = new Random(); for (int i = 0; i < 550; i++) { if (i % 2 == 0) { value[i] = random.nextFloat(); } else { value[i] = -random.nextFloat(); } } String str_value = FloatArrayToString(value); OkHttpClient client = new OkHttpClient(); FormBody.Builder formBuilder = new FormBody.Builder(); formBuilder.add("demo", str_value); Request request = new Request.Builder().url(url).post(formBuilder.build()).build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { runOnUiThread(new Runnable() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "服務器錯誤", Toast.LENGTH_SHORT).show(); } }); } }); } @Override public void onResponse(Call call, final Response response) throws IOException { final String res = response.body().string(); runOnUiThread(new Runnable() { @Override public void run() { if (res.equals("0")) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "失敗", Toast.LENGTH_SHORT).show(); } }); } else { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "成功"+res, Toast.LENGTH_SHORT).show(); } }); } } }); } }); }
關于“使用python搭建服務器并實現Android端與之通信的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
分享標題:使用python搭建服務器并實現Android端與之通信的方法-創新互聯
轉載來于:http://m.kartarina.com/article21/dodicd.html
成都網站建設公司_創新互聯,為您提供電子商務、定制網站、品牌網站制作、網站策劃、網站收錄、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯