欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

使用python搭建服務器并實現Android端與之通信的方法

系統 1672 0

前言

好久沒有更技術文了,再不寫怕是博客要廢掉了,今天更一篇關于搭建服務端并與Android端通信的文章,為了節省代碼量,服務端使用Python Flask,Android端使用Okhttp,還是老樣子,文章不講原理只給具體實現,想要了解原理可至官網詳細研究。

服務端

環境:服務端使用Python3.5+PyCharm

新建Flask項目

看圖:

使用python搭建服務器并實現Android端與之通信的方法_第1張圖片

然后create,初始化完成之后項目結構應該類似如下:

使用python搭建服務器并實現Android端與之通信的方法_第2張圖片

其實這時候直接啟動項目就可以在瀏覽器訪問到:

使用python搭建服務器并實現Android端與之通信的方法_第3張圖片

這就是使用現成框架的好處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/

使用python搭建服務器并實現Android端與之通信的方法_第4張圖片

注意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();
                }
              });

            }

          }
        });
      }
    });

  }

          

我這里隨機生成了一個數組并將其發送到了服務器端,核心代碼很簡單,有框架真的可以為所欲為,寫不動了吃飯去了,也許有心情會再更的詳細點,給份現成代碼自己研究研究吧:

https://github.com/DmrfCoder/OkHttpDemo

以上這篇使用python搭建服務器并實現Android端與之通信的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 人人艹人人看 | 亚洲欧美二区三区久本道 | 99成人 | 亚洲福利视频一区二区 | 欧美高清视频一区 | av片免费| 亚洲AV无码色情第一综合网 | 亚洲午夜在线视频 | 精品一区二区三区四区 | 亚州毛色毛片免费观看 | 欧美日韩国产一区二区三区 | 四虎影院新地址 | 偷拍自拍网站 | 伊人超碰 | 日本天天色 | 人人澡人人澡人人澡 | 视频一区中文字幕 | 玖玖精品在线观看 | 日韩精品高清在线 | 免费三级大片 | 日韩精品欧美高清区 | 国产欧美一区二区精品久久久 | 国产亚洲欧美一区 | 天天操网| 亚洲精品美女久久久 | 亚洲国产一区二区视频 | 国产成人精品免费午夜 | 亚洲精选一区 | 色吧综合| 日韩国产精品一区二区三区 | 免费久久99精品国产婷婷六月 | 91久久久久 | 91中文字幕在线一区 | 99精品国产高清在线观看 | 狠狠干av | 午夜久久久久久久久久一区二区 | 国产午夜福利视频一区二区32页 | 在线看一级片 | 国产视频一二区 | 久久国产欧美日韩精品 | 国产精品久久久久久久免费大片 |