使用OkHttp请求WebService_okhttp调用webservice_Reginer_Y的博客-程序员秘密

技术标签: OkHttp  安卓  WebService  Http  Android  

使用OkHttp请求WebService,比想象中的简单。
下面以一个天气预报的开放测试接口为例,完成一个接口请求。
天气预报Web服务,数据来源于中国气象局:
Endpoint: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
Disco: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?disco
WSDL: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
更多可供测试接口,点击这里

点开Endpoint这个网址。
找到Http Get,如图:
http get
看到这里,就一目了然了。直接在浏览器中访问就可以了。多么可怕。
get请求
那么接下来,就更简单了。

先添加个OkHttp请求库。

compile 'xyz.reginer.http:httplib:1.0.4'

然后代码中请求:

/**
     * 获取天气.
     *
     * @param city         城市
     * @param weatherInter 回调
     */
    public static void getWeather(String city, final WeatherInter weatherInter) {
        Map<String, String> params = new HashMap<>();
        params.put("theCityName", city);
        RHttp.get().url(Urls.GET_WEATHER).params(params).build().execute(new StringCallback() {
            @Override
            public void onError(Call call, Exception e, int id) {
                weatherInter.getWeather(Log.getStackTraceString(e));
            }

            @Override
            public void onResponse(String response, int id) {
                weatherInter.getWeather(response);
            }
        });
    }

Activity中展示数据:

@Override
    public void getWeather(String result) {
        Logcat.d("response is::\n" + result);
        if (Build.VERSION.SDK_INT >= 24) {
            // FROM_HTML_MODE_COMPACT:html块元素之间使用一个换行符分隔
            // FROM_HTML_MODE_LEGACY:html块元素之间使用两个换行符分隔
            mTvResult.setText(Html.fromHtml(result, Html.FROM_HTML_MODE_COMPACT));
        } else {
            mTvResult.setText(Html.fromHtml(result).toString().replace(" ","\n"));
        }
    }

好了,结局就是这样,一切都是有条不紊。示例代码点这里

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_26413249/article/details/64138485

智能推荐

【BZOJ3926】诸神眷顾的幻想乡(ZJOI2015)-广义后缀自动机_Maxwei_wzj的博客-程序员秘密

测试地址:诸神眷顾的幻想乡 做法:本题需要用到广义后缀自动机。 仔细读题,我们发现树的叶子节点非常少,只有202020个,那么我们把从一个叶子节点到另一个叶子节点所经过的串列出来,我们发现这些串包含树上的每条路径,证明是显然的。 接下来出现了一个问题,后缀自动机是处理单个串的子串的一个数据结构,现在我们有那么多个串,用后缀自动机好像没办法做?所以我们需要用到后缀自动机的扩展——广义后缀自动机...

Azkaban任务调度_麦田里的守望者·的博客-程序员秘密

概述Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的key:value对的方式,通过配置中的dependencies 来设置依赖关系,这个依赖关系必须是无环的,否则会被视为无效的工作流。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。...

手机壁纸API_夕夜_如风的博客-程序员秘密

不分类别获取壁纸接口url:http://service.picasso.adesk.com/v1/vertical/vertical拼接参数:limit:返回数量adult:布尔值,暂时未知first:数字,如1skip:略过数量order:值&nbsp;hot为favs,&nbsp;newurl 示例:http://service.picasso.adesk.com/v1/...

Gurobi软件求解线性规划问题(卜算学习记录)_gurobi求解线性规划_见己个人平台的博客-程序员秘密

本文回顾了卜老师GLPK求解家庭主妇购物问题的过程,提供了在python中安装Gurobi的方法,给出了Gurobi求解线性规划问题的具体步骤。通过对比Gurobi和Glpk的不同,带着读者边学习边复习了Glpk的使用方法。线性规划是看家本领,不仅要熟练掌握建模方法,还要学会使用软件进行求解。

upload-labs通关小记 Pass17-20 含代码审计_Neonline254的博客-程序员秘密

记录了学习"文件上传漏洞"时打的upload-labs靶场Pass17-20,包含具体的实验过程和一些题目的代码审计。

浅谈输入框内容代码攻击_qq_43288599的博客-程序员秘密

浅谈输入框内容代码攻击javascript可以作为黑客攻击网站的一种工具,其中注入js恶意脚本就是其中一种手段,那么下面我们来学习一下如何预防js的攻击。在学习阻止js攻击之前,我们先来了解一下什么是js代码攻击Javascript注入攻击指的是通过网页地址后加javascript代码,影响系统运作,javascript注入漏洞能发生作用主要依赖两个关键的动作:一个是用户要能从界面中注入Jav...

随便推点

ffmpeg与第三方编码编译安装_weixin_33862188的博客-程序员秘密

2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

Linux C语言内联汇编-函数调用_c语言内联汇编调用sbicall_Mnnk的博客-程序员秘密

int func(int a, int b, int c, int d, int e, int x, int y, int z){ return 1;}int main() { res = func(1, 2, 3, 4, 5, 6, 7, 8); cout &amp;lt;&amp;lt; res; return 0;}g++ -S查看汇编subq $16,...

unity3d android 插件_陈疯的博客-程序员秘密

参考自unity官方文档,点击传送方法1首先在unity的assets目录下创建Plugins目录结构,具体如图bin目录里面存放已经打包好了的xxx.jar包(这里也可以在Android目录下创建libs目录 存放打包好了的xxx.jar),关于如何把java代码打成jar包请看当你把项目导出成android项目后如图:unity中bin目录中的jar包已经被

TVS参数详解及选型应用_10/1000us波形_沙漠的甲壳虫的博客-程序员秘密

一、首先了解TVS管的参数,我们以littelfuse的5.0SMDJ系列为例。图1图2最大峰值脉冲功率 MaximumPeak Pulse PowerPppm峰值脉冲功率为ESD器件上瞬间通过的最大功率值,由最大...

MySQL 数据库 password函数_mysql password函数_kunpengku的博客-程序员秘密

在MySQL数据库中 执行下面这一句,会对字符串生成加密后的 新的字符串 。用户在数据库中存储密码。SELECT PASSWORD('aa') 生成的字符串 已 * 号开头。 比如 ‘*DEE59C300700AF9B586F9F2A702231C0AC373A13’ SELECT OLD_PASSWORD('aa') ;OLD_PASSWORD 是旧版本的加密函数

20165231 预习作业3 linux安装及学习_weixin_30414245的博客-程序员秘密

linux安装由于以前稍微关注过虚拟机相关知识,所以大致知道虚拟机软件的相关知识。目前我已知的普遍使用的虚拟机软件是VMware Workstation(下文简称VM),VirtualBox(下文简称VB)。其余的可能很多人用但是我没用过就不提了。我也在VM和VB之间做过比较。VB开源,免费,且安装后体积较小,操作简单适合新手;VM功能强大,可以随时调整虚拟机的配置,完全隔离并保护主机与虚拟机...

推荐文章

热门文章

相关标签