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

    }

}

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

  1. JavaFX基础学习之OkHttp/Gson

    导入jar包,使用OkHttp/Okio/Gson请求解析 package application; import java.io.IOException; import java.net.URL; ...

  2. JavaFX基础学习之URLConnection

    一个标准的JavaFX文件包含三个部分:主类 . 控制类. 界面设计(XML+CSS) 1,main.java package application; import javafx.applicati ...

  3. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

  4. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  5. IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...

  6. HTML5零基础学习Web前端需要知道哪些?

    HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...

  7. python入门到精通[三]:基础学习(2)

    摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...

  8. python入门到精通[二]:基础学习(1)

    摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...

  9. CSS零基础学习笔记.

    酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...

随机推荐

  1. WPF刷新界面之坎坷路

    WPF刷新界面之坎坷路 项目需要一个硬件检测功能,需要用到界面刷新,刚开始想用个定时器,对检测过的硬设定时添加后刷新界面. 但是很遗憾,定时器并不能进行刷新.后台检测List数据里面已经添加了很多了很 ...

  2. python 提供INI配置文件的操作 ConfigParser

    原文地址:http://www.cnblogs.com/pumaboyd/archive/2008/08/11/1265416.html 红色的为标注信息 +++++++++++++++++引用+++ ...

  3. 用android代码显示图片的一部分源码

    ShowPoritionPictureActivity代码: [java] <span style="font-size:16px;"> package com.iwi ...

  4. [ios2]使用NSOperationQueue简化多线程开发和队列的优先级 【转】

    多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说. 为了能让初级开发工程师也能使用多线程,同时还要简化复杂性.各种编程工具提供了各自的办法.对于iOS来说,建议在尽可能的情况下避 ...

  5. ASP.NET Zero--11.一个例子(4)商品分类管理-数据检验

    虽然已经可以添加商品分类,但还需进行优化,比如:用户是否输入.输入字符串是否有格式限制等等. 打开添加分类按钮,名称不输入任何字符,直接保存,会发现列表添加一条空记录.在实际项目中,这是不允许出现的事 ...

  6. Unity3D【新手问题】阴影效果不显示的原因

    Unity 不显示阴影的原因: 模型尺寸太大了,镜头比较远 把模型缩小,镜头一定要拉到最近才能看到 这是我遇到的问题和解决方法, 另外一定要设置 Directional light 的 shadow ...

  7. C#调用百度地图API

    1.打开链接http://developer.baidu.com/map/jshome.htm这里有很多DEMO,或者你直接百度搜索"百度地图API",第一个就是.进入后有很多方向 ...

  8. 将int,bigint整型数值可逆转换字符串

    将 Int 和 BigInt 类型数值转换为字符串的可逆方法,可用于缩短网址或记录的ID转换等. 如: 9223372036854775807 => aZl8N0y58M7 class Conv ...

  9. 【UOJ #280】【UTR #2】题目难度提升

    http://uoj.ac/problem/280 非常难想的贪心,用set\(O(nlogn)\). 调了一天qwq. 题解 #include<set> #include<cstd ...

  10. CHD 2014迎新杯比赛题解

    A. 草滩的魔法学校 分析: 高精度乘法 或 JAVA大数类 很明显 10000 的阶乘已经远远超过 64 位数能表示的范围了.所以我们要用一个比较大的数组来存放这个数.那数组要开多少位合适呢?我们不 ...