一名小学生的gravatar头像
一名小学生 2017-10-31 17:00:15

如何抓取一个接口的数据到本地然后把这个数据存到本地的数据库怎么搞?

我需要抓取一个接口的数据到本地来,然后把这个数据存到本地的数据库怎么搞?

所有回答列表(3)
网海情缘的gravatar头像
网海情缘  LV11 2017年11月1日

Webservice吗?我最近正好项目需求这个 搞了个demo  如果是的话 可以贴出来给你参考

 

 

WSDL:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

上诉WSDL通过idea自动生成java代码、

以下是demo 调用代码

 

package com.cnvp.bureau.services;

import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import com.cnvp.bureau.client.WeatherWebServiceLocator;
import com.cnvp.bureau.client.WeatherWebServiceSoap12Stub;

/**
 * @author Administrator
 */
public class TestWeather {
    public static void main(String[] args) throws ServiceException, RemoteException {
        WeatherWebServiceLocator locator = new WeatherWebServiceLocator();
        WeatherWebServiceSoap12Stub service = (WeatherWebServiceSoap12Stub) locator.getPort(WeatherWebServiceSoap12Stub.class);
        invokeGetSupportProvince(service);
        System.out.println("...................");
        invokeGetSupportCity(service);
        invokeGetWeatherByOneCity(service);
    }

    /**
     * 调用获取支持的省份、州接口
     * @param service
     * @throws RemoteException
     */
    public static void invokeGetSupportProvince(WeatherWebServiceSoap12Stub service) throws RemoteException {
        String[] provices = service.getSupportProvince();
        System.out.println("总共" + provices.length + "个");
        int count = 0;
        for (String str : provices) {
            if (0 != count && count % 5 == 0) {
                System.out.println();
            }
            System.out.print(str + "\t");
            count++;
        }
    }

    /**
     * 调用获取支持查询某个省份内的城市接口
     * @param service
     * @throws RemoteException
     */
    public static void invokeGetSupportCity(WeatherWebServiceSoap12Stub service) throws RemoteException {
        String provinceName = "浙江";
        String[] cities = service.getSupportCity(provinceName);
        System.out.println("总共" + cities.length + "个市");
        for (int i = 0; i < cities.length; i++) {
            if (0 != i && i % 5 == 0) {
                System.out.println();
            }
            System.out.print(cities[i] + "\t");
        }
    }

    /**
     * 调用查询某个城市天气的接口
     * @param service
     * @throws RemoteException
     */
    public static void invokeGetWeatherByOneCity(WeatherWebServiceSoap12Stub service) throws RemoteException {
        String cityName = "温州";
        String[] weatherInfo = service.getWeatherbyCityName(cityName);
        for (String str : weatherInfo) {
            System.out.println(str);
        }
    }
}

 

一名小学生的gravatar头像
一名小学生  LV10 2017年11月1日

非常感谢你,可以贴出来,我参考参考。

木玉川的gravatar头像
木玉川  LV6 2017年11月6日

看你们项目用什么接口啊?webService?消息队列?然后需要定时任务吗?获取接口数据就是抓取各种后缀名的数据文件(.dat,.txt等),然后写java代码去解析入库持久化就可以了啊。你可以把你的问题描述的详细一点

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友