使用OkHttp请求WebService

使用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"));
        }
    }

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,462评论 25 708
  • 今天是农历七月十五,鬼节。 昨晚我又做了那个梦,这些年来我常常会做一个几乎一样的梦: 我又变回了一个很小的小孩,与...
    雪深一尺阅读 559评论 19 11
  • 就是那天早上 我望着没有回头的背影 化成一座雕塑 只觉秋凉袭来颤栗世界 一泓清澈的秋水 直视到底的结局 划过指尖的...
    营州布衣阅读 176评论 0 5
  • 2007年2月12日,是一个平凡而特别的日子。我终于结束了在东南剧院的演出。满台耀眼的冷烟花像打碎的“银河”一...
    俏花旦阅读 595评论 0 0