zoukankan      html  css  js  c++  java
  • flutter 网络请求-Dio

    get请求

    1.get请求不带参数

            [HttpGet]
            public string g1()
            {
                return "abc";
            }
                       () async {
                        try {
                          Response response = await dio.get("https://127.0.0.1:5001/test/g1");
                          print(response.data);
                        } catch (e) {
                          print(e);
                        }
                      }();

    2.get请求带参数

            [HttpGet]
            public string g2(int a,string str)
            {
                return a.ToString()+str;
            }
    Response response = await dio.get("https://127.0.0.1:5001/test/g2?a=3&str=abc");

    或者

    Response response = await dio.get("https://127.0.0.1:5001/test/g2",queryParameters: {"a":3,"str":"abc"});

     或者

                      var data={'a':3,'str':'tom'};
                       () async {
                        try {
                          Response response = await dio.get("https://127.0.0.1:5001/test/g2",queryParameters:data);
                          print(response.data);
                        } catch (e) {
                          print("打印:"+e.toString());
                        }
                      }();

    3.

            [HttpGet]
            public string g3(Student student)
            {
                return student.name;
            }

    传参数时,需要写在body里,get的body不推荐。

    Post请求

    1.post无参数

            [HttpPost]
            public string p1()
            {
                return "abc";
            }
    Response response = await dio.post("https://127.0.0.1:5001/test/p1");

    2.一个body参数

            [HttpPost]
            public string p2([FromBody] string str)
            {
                return str;
            }

    3.参数是一个类对象

            [HttpPost]
            public string p3([FromBody] Student student)
            {
                return student.name;
            }
    Response response = await dio.post("https://127.0.0.1:5001/test/p3",data: {"age":3,"name":"tom"});

    4.参数是一个数组

            [HttpPost]
            public string p4(string[] arr)
            {
                string str = "";
                foreach (var a in arr)
                {
                    str += a;
                }
                return str;
            }
    List list=["a","b","c"];
    
    Response response = await dio.post("https://127.0.0.1:5001/test/p4",data: list);

     5. list对象集合

            [HttpPost]
            public string p5(List<Student> list)
            {
                string str = "";
                foreach (var stu in list)
                {
                    str += stu.name;
                }
                return str;
            }
    String str = '[{"age":18,"name":"tom"},{"age":22,"name":"liu"}]';
    
    Response response = await dio.post("https://127.0.0.1:5001/test/p5", data: str);

    6.传对象和参数混合

            [HttpPost]
            public string p6(List<Student> list,string a,string b)
            {
                string str = "";
                foreach (var stu in list)
                {
                    str += stu.name;
                }
                return str+a+b;
            }
    String str = '[{"age":18,"name":"tom"},{"age":22,"name":"liu"}]';
    var str2={"a":"q","b":"w"};
    
    Response response = await dio.post("https://127.0.0.1:5001/test/p6",queryParameters: str2, data: str);

    7.表单

            [HttpPost]
            public string p7([FromForm] Student student)
            {
                return student.name;
            }
    FormData form=FormData.fromMap({"name": "tom", "age": 25,});
    
    Response response = await dio.post("https://127.0.0.1:5001/test/p7",data:form);

    访问https

                      Dio dio=Dio();
                      //使用https,忽略签名
                      (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate  = (client) {
                        client.badCertificateCallback=(X509Certificate cert, String host, int port){
                            return true;
                        };
                      };
                       () async {
                        try {
                          Response response = await dio.get("https://127.0.0.1:5001/test/g1");
                          print(response);
                        } catch (e) {
                          print(e);
                        }
                      }();

    加证书

    String PEM="XXXXX"; // certificate content
    (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate  = (client) {
        client.badCertificateCallback=(X509Certificate cert, String host, int port){
            if(cert.pem==PEM){ // Verify the certificate
                return true;
            }
            return false;
        };
    };
  • 相关阅读:
    springcloud系列五 feign远程调用服务
    ribbon负载均衡
    使用RestTemplate时报错java.lang.IllegalStateException: No instances available for 127.0.0.1
    HBase介绍
    HBase单机模式安装
    HDFS介绍及简单操作
    zookeeper三种模式安装详解(centos 7+zookeeper-3.4.9)
    zookeeper介绍
    hadoop搭建伪分布式集群(centos7+hadoop-3.1.0/2.7.7)
    linux配置本地yum源
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/10860703.html
Copyright © 2011-2022 走看看