JavaFX基础学习之OkHttp/Gson2

222

package application;

import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import com.google.gson.Gson;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class Controller implements Initializable{

    @FXML
    private Button button;
    @FXML
    private TextField textfield;
    @FXML
    private TextArea textarea;

    private static OkHttpClient client = new OkHttpClient();

    //发起请求,获取内容
    public static String getjson (String url) throws IOException {
          Request request = new Request.Builder()
              .url(url)
              .build();

          Response response = client.newCall(request).execute();
          return response.body().string();
        }

    //函数调用api,并利用gson解析json数据,获取KEY
    public static String getkey(String corpid,String corpsecret){

        String json = null;
        try{

            json = getjson("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+corpid+"&corpsecret="+corpsecret);

        }catch (Exception e){

            e.printStackTrace();
        }

        Gson gson = new Gson();

        weixinapi wxapi = gson.fromJson(json, weixinapi.class);

        return wxapi.getAccess_token();

    }

      //函数调用api,并利用gson解析json数据,获取用户ID
      public static String[] getid(String token,String xuehao){

        String json = null;
        try{

            json = getjson("https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token="+token+"&userid="+ xuehao);

        }catch (Exception e){

            e.printStackTrace();
        }

        System.out.println(json);

        if (json.contains("ok")){
                Gson gson = new Gson();

                idapi iapi = gson.fromJson(json, idapi.class);

                String xb = null;

                 if (iapi.getGender().equals("1")){
                            xb = "男";

                    }else if (iapi.getGender().equals("2")){
                            xb = "女";
                  }

                return new String[]{
                    "学号: "+ iapi.getUserid(),
                    "姓名:" + iapi.getName(),
                    "手机号: "+ iapi.getMobile(),
                    "性别 : "+ xb,
                    "微信号: "+ iapi.getWeixinid()    

                };

        }else {
            return new String[]{ 

                    "user not find",

            };}

    }

    @FXML
    private void handleButtonAction(ActionEvent event) {

        String key=getkey("test","test");
        String xuehao = textfield.getText();

        for(String str : getid(key,xuehao)){

              textarea.appendText(str+"\n");

        }

    }

    @Override
    public void initialize(URL arg0, ResourceBundle arg1) {
        // TODO Auto-generated method stub

    }

}
时间: 2024-10-26 09:45:37

JavaFX基础学习之OkHttp/Gson2的相关文章

JavaFX基础学习之OkHttp/Gson

导入jar包,使用OkHttp/Okio/Gson请求解析 package application; import java.io.IOException; import java.net.URL; import java.util.ResourceBundle; import com.google.gson.Gson; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializab

JavaFX基础学习之URLConnection

一个标准的JavaFX文件包含三个部分:主类 . 控制类. 界面设计(XML+CSS) 1,main.java package application; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.stage.Stage; import javafx.scene.Parent; import javafx.scene.Scene; public class Main ext

蓝鸥零基础学习HTML5—html+css基础

蓝鸥零基础学习HTML5-html+css基础 一.课程目标 1.了解前端开发职位:2.掌握常用标签以及语义及用法:3.掌握常用css的特性,掌握基础布局技巧:4.掌握整站规划概念. 二.适用人群 零基础积极学习html5者 三.课程简介 本课程主要讲解了 html+css的基础知识,包括html模板.标签.css基础样式.布局.表格表单.整站等等,是进行前端开发的基础.Html+css是前端开发的基础,大部分前端开发工程都需要从html+css布局开始,html+css的基础非常重要,是前端开

HTML&CSS基础学习笔记8-预格式文本

<pre>标签的主要作用是预格式化文本.被包围在 pre 标签中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre>标签的一个常见应用就是用来表示计算机的源代码.当然你也可以在你需要在网页中预显示格式时使用它. 会使你的文本换行的标签(例如<h>.<p>)绝不能包含在 <pre> 所定义的块里.尽管有些浏览器会把段落结束标签解释为简单地换行,但是这种行为在所有浏览器上并不都是一样的. 更多学习内容,就在码芽网http://www.

Objc基础学习记录5

NSMutableString类继承的NSString类. NSMutableString是动态的字符串. 1.appendingString 方式: 向字符串尾部添加一个字符串. 2.appendingFormat:可以添加多个类型的字符串. int,chat float,double等 3.stringWithString 创建字符串, 4.rangeOfString 返回str1在另一个字符串中的位置. 5.NSMakeRange(0,3) 字符串0位到3位. 6.deleteCharac

Linux新手入门书籍推荐 鸟哥的linux私房菜-基础学习篇

这本书写的不错.赞~\(≧▽≦)/~ 2017-02-24 下午,我开始在Linux下写第一个.c程序,在终端打印hello world.gcc 源代码文件之后,输出可执行文件,但是 当我输入文件名执行它的时候,却提示我 无法找到命令.于是我找百度,查资料,花了半个小时,终于找到解决方法了, 输入"./filename"即可.... 2017-02-25 我看<基础学习篇>这本书,在P158页下面的例题讲解中找到了昨天下午异常的解析.我就很是感慨,心想:要是早看这本书,半个

Java基础学习——数组初识(1)

Java基础学习--数组初识(1) 1什么是数组 Java中常见的一种数据结构就是数组,数组可以分为一维数组.二维数组和多维数组. 数组是由一组相同的变量组成的数据类型,数组中每个元素具有相同的数据类型,数组中的每个元素都可以用一个统一的数组名和下标来确定. 2 数组的使用 数组的一般使用步骤: 声明数组 分配内存给该数组 下面是一维数组为例: 数据类型  数组名 []: 数组名 = new 数据类型 [数据个数]: 2.1一维数组的声明与赋值 1.数组的声明 int  num [];    

零基础学习 Hadoop 如何下手

想学习hadoop,可是苦于自己没有任何的基础,不知道该如何下手,也不知道自己能不能学会.其实零基础学习hadoop,没有想象的那么困难.曾经我也是一位小白,刚接触到云计算,想过培训,但是培训机构的选择也让我很纠结,就自己开始去摸索学习,现在我把自己的学习思路整理一下,希望对大家有帮助. 首先整体说一下学习过程给大家借鉴: 一.了解hadoop: 这里不具体阐述概念,有兴趣的同学可以自己上网去查.我们知道hadoop,有单机安装,伪分布安装和分布安装.同时hadoop的环境是Linux,所以我们

HTML&CSS基础学习笔记13—无序列表

无序列表 有时我们的工作繁忙,杂事很多,怕忘记,就会把事情一件件列出来,防止忘记. 它们的排列顺序对于我们来说并不重要,可以随意调换,我们将它称为无序列表,HTML里用<ul>标签来表示无序列表,列表里的项目则用<li>标签来表示: 1 2 3 4 5 <ul>     <li></li>     <li></li>     ... </ul> 看一段实例代码: 对于的浏览器显示结果是这样的: 更多内容学习,请