技术标签: 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,如图:
。
看到这里,就一目了然了。直接在浏览器中访问就可以了。多么可怕。
那么接下来,就更简单了。
先添加个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"));
}
}
好了,结局就是这样,一切都是有条不紊。示例代码点这里。
测试地址:诸神眷顾的幻想乡 做法:本题需要用到广义后缀自动机。 仔细读题,我们发现树的叶子节点非常少,只有202020个,那么我们把从一个叶子节点到另一个叶子节点所经过的串列出来,我们发现这些串包含树上的每条路径,证明是显然的。 接下来出现了一个问题,后缀自动机是处理单个串的子串的一个数据结构,现在我们有那么多个串,用后缀自动机好像没办法做?所以我们需要用到后缀自动机的扩展——广义后缀自动机...
概述Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的key:value对的方式,通过配置中的dependencies 来设置依赖关系,这个依赖关系必须是无环的,否则会被视为无效的工作流。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。...
不分类别获取壁纸接口url:http://service.picasso.adesk.com/v1/vertical/vertical拼接参数:limit:返回数量adult:布尔值,暂时未知first:数字,如1skip:略过数量order:值 hot为favs, newurl 示例:http://service.picasso.adesk.com/v1/...
本文回顾了卜老师GLPK求解家庭主妇购物问题的过程,提供了在python中安装Gurobi的方法,给出了Gurobi求解线性规划问题的具体步骤。通过对比Gurobi和Glpk的不同,带着读者边学习边复习了Glpk的使用方法。线性规划是看家本领,不仅要熟练掌握建模方法,还要学会使用软件进行求解。
记录了学习"文件上传漏洞"时打的upload-labs靶场Pass17-20,包含具体的实验过程和一些题目的代码审计。
浅谈输入框内容代码攻击javascript可以作为黑客攻击网站的一种工具,其中注入js恶意脚本就是其中一种手段,那么下面我们来学习一下如何预防js的攻击。在学习阻止js攻击之前,我们先来了解一下什么是js代码攻击Javascript注入攻击指的是通过网页地址后加javascript代码,影响系统运作,javascript注入漏洞能发生作用主要依赖两个关键的动作:一个是用户要能从界面中注入Jav...
2019独角兽企业重金招聘Python工程师标准>>> ...
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 &lt;&lt; res; return 0;}g++ -S查看汇编subq $16,...
参考自unity官方文档,点击传送方法1首先在unity的assets目录下创建Plugins目录结构,具体如图bin目录里面存放已经打包好了的xxx.jar包(这里也可以在Android目录下创建libs目录 存放打包好了的xxx.jar),关于如何把java代码打成jar包请看当你把项目导出成android项目后如图:unity中bin目录中的jar包已经被
一、首先了解TVS管的参数,我们以littelfuse的5.0SMDJ系列为例。图1图2最大峰值脉冲功率 MaximumPeak Pulse PowerPppm峰值脉冲功率为ESD器件上瞬间通过的最大功率值,由最大...
在MySQL数据库中 执行下面这一句,会对字符串生成加密后的 新的字符串 。用户在数据库中存储密码。SELECT PASSWORD('aa') 生成的字符串 已 * 号开头。 比如 ‘*DEE59C300700AF9B586F9F2A702231C0AC373A13’ SELECT OLD_PASSWORD('aa') ;OLD_PASSWORD 是旧版本的加密函数
linux安装由于以前稍微关注过虚拟机相关知识,所以大致知道虚拟机软件的相关知识。目前我已知的普遍使用的虚拟机软件是VMware Workstation(下文简称VM),VirtualBox(下文简称VB)。其余的可能很多人用但是我没用过就不提了。我也在VM和VB之间做过比较。VB开源,免费,且安装后体积较小,操作简单适合新手;VM功能强大,可以随时调整虚拟机的配置,完全隔离并保护主机与虚拟机...