亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用python搭建服務(wù)器并實現(xiàn)Android端與之通信的方法

 更新時間:2019年06月28日 17:46:12   作者:ai-exception  
今天小編就為大家分享一篇使用python搭建服務(wù)器并實現(xiàn)Android端與之通信的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

前言

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

服務(wù)端

環(huán)境:服務(wù)端使用Python3.5+PyCharm

新建Flask項目

看圖:

然后create,初始化完成之后項目結(jié)構(gòu)應(yīng)該類似如下:

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

這就是使用現(xiàn)成框架的好處hhh,但是我們希望實現(xiàn)與客戶端的通信,自然需要再做進一步code.

編寫代碼接受來自客戶端的數(shù)據(jù)

首先我們看一下hello_world的代碼:

@app.route('/')
def hello_world():
  return 'Hello World!'

這里@app.route(‘/')意思就是訪問你服務(wù)端地址時調(diào)用這個方法,所以我們可以通過這種方式實現(xiàn)自己的需求,比如: ​

@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']的返回值是你客戶端發(fā)送的tag為demo_tag的數(shù)據(jù),下文會詳細介紹如何發(fā)送數(shù)據(jù),最后返回值你可以自己指定,這里隨便給了一個。到這里服務(wù)端已經(jīng)ok了,我們看看客戶端如何實現(xiàn).

Android端

客戶端使用Okhttp,需要導(dǎo)入兩個jar包,地址

jar包下載地址: http://square.github.io/okhttp/

注意2個jar包都要,圖中3個圈點完就ok了,下載到本地自己導(dǎo)入,這部分就不詳細寫了,不會導(dǎo)入的可以Google一下。

如果不想手動導(dǎo)入jar包可以: ​

implementation ‘com.squareup.okhttp3:okhttp:3.11.0'

導(dǎo)入之后直接看代碼:

@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";//替換成自己的服務(wù)器地址
        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, "服務(wù)器錯誤", 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();
                }
              });

            }

          }
        });
      }
    });

  }

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

https://github.com/DmrfCoder/OkHttpDemo

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

相關(guān)文章

  • 通過Django Admin+HttpRunner1.5.6實現(xiàn)簡易接口測試平臺

    通過Django Admin+HttpRunner1.5.6實現(xiàn)簡易接口測試平臺

    這篇文章主要介紹了通過Django Admin+HttpRunner1.5.6實現(xiàn)簡易接口測試平臺,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Python 爬蟲性能相關(guān)總結(jié)

    Python 爬蟲性能相關(guān)總結(jié)

    這篇文章主要介紹了Python 爬蟲性能的相關(guān)資料,文中講解非常詳細,幫助大家更好的理解和學(xué)習(xí)爬蟲,感興趣的朋友可以了解下
    2020-08-08
  • python 輸出一個兩行字符的變量

    python 輸出一個兩行字符的變量

    昨天被一個哥們問怎么用 python輸出一個兩行字符的變量。寫了N個方法都覺得麻煩。
    2009-02-02
  • python實現(xiàn)的web監(jiān)控系統(tǒng)

    python實現(xiàn)的web監(jiān)控系統(tǒng)

    這篇文章主要介紹了python實現(xiàn)的web監(jiān)控系統(tǒng),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • Django框架視圖層URL映射與反向解析實例分析

    Django框架視圖層URL映射與反向解析實例分析

    這篇文章主要介紹了Django框架視圖層URL映射與反向解析,結(jié)合實例形式分析了Django框架普通url映射、命名URL參數(shù)映射、分布式URL映射、反向解析等相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • 利用python微信庫itchat實現(xiàn)微信自動回復(fù)功能

    利用python微信庫itchat實現(xiàn)微信自動回復(fù)功能

    最近發(fā)現(xiàn)了一個特別好玩的Python 微信庫itchat,可以實現(xiàn)自動回復(fù)等多種功能,下面這篇文章主要給大家介紹了利用python微信庫itchat實現(xiàn)微信自動回復(fù)功能的相關(guān)資料,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-05-05
  • Python正則表達式匹配HTML頁面編碼

    Python正則表達式匹配HTML頁面編碼

    這篇文章主要介紹了Python正則表達式匹配HTML頁面編碼,本文直接給出代碼和匹配實例,需要的朋友可以參考下
    2015-04-04
  • python統(tǒng)計字母、空格、數(shù)字等字符個數(shù)的實例

    python統(tǒng)計字母、空格、數(shù)字等字符個數(shù)的實例

    今天小編就為大家分享一篇python統(tǒng)計字母、空格、數(shù)字等字符個數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 用Python創(chuàng)建簡易網(wǎng)站圖文教程

    用Python創(chuàng)建簡易網(wǎng)站圖文教程

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著用Python創(chuàng)建簡易網(wǎng)站展開,文中有非常詳細的介紹及圖文示例,需要的朋友可以參考下
    2021-06-06
  • PyTorch 中的傅里葉卷積實現(xiàn)示例

    PyTorch 中的傅里葉卷積實現(xiàn)示例

    這篇文章主要介紹了PyTorch 中的傅里葉卷積實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論