开发文档开发文档
文档
官网
控制台
服务协议
更新日志
文档
官网
控制台
服务协议
更新日志
  • 开始使用

    • 如何接入API
    • API计费限流规则
    • API错误代码说明
    • 不同版本区别
    • 联系我们
    • 海洋天气对照表
    • 海洋要素对照表
  • 海洋警报

    • 极端天气预警
    • 海浪警报
    • 风暴潮警报
    • 海冰警报
    • 海啸
  • 海洋环境(国内)

    • 3天预报
    • 7天预报
    • 15天预报
    • 逐小时预报72小时
    • 逐小时预报168小时
    • 逐小时预报360小时
    • 潮汐30天预报
    • 逐小时潮汐预报72小时
    • 逐小时潮汐预报168小时
    • 逐小时潮汐预报360小时
  • 海洋环境(全球)

    • 3天预报
    • 7天预报
    • 15天预报
    • 逐小时预报72小时
    • 逐小时预报168小时
    • 逐小时预报360小时
  • 海洋天气

    • 海洋天气实况
    • 3天预报
    • 7天预报
    • 15天预报
    • 逐小时预报72小时
    • 逐小时预报168小时
    • 逐小时预报360小时
    • 热带气旋
    • 海上强对流数据接口
    • 海雾数据接口
  • 海洋专题

    • 渔区网格
    • 近岸海域
    • 渔场
    • 港口
  • 海洋生态

  • 地理环境

    • 日出日落
    • 月出月落月相
    • 全球水深数据
    • 通用地理环境
  • 旅游专题

    • 钓鱼
    • 赶海
    • 通用旅游指数

港口产品共包含两个接口,港口预报元数据可获取 40 个各级预报机构预报的港口,返回港口编号、名称及文字描述,港口预报数据需要港口编号查询预报数据。

港口预报元数据

港口预报元数据接口,包括 40 个各级预报机构预报的港口,返回港口编号、名称及文字描述,根据港口编号查询预报数据

接口地址

https://api.foreocean.com/forecast/port

请求方式

GET

请求参数说明

参数名称类型是否必须备注
TokenString是API 调用令牌,您申请应用的 Token,放在请求头中

请求示例

java
public static void main(String[] args) {
		Map<String, Object> params = new HashMap<>(16);
		String requestUrl = "https://api.foreocean.com/forecast/port";
		String response = get(requestUrl, params);
		System.out.println(response);
	}

	public static String get(String url, Map<String, Object> params) {
		try {
			CloseableHttpClient httpClient = HttpClients.createDefault();
			url = url + "?";
			for (Iterator<String> iterator = params.keySet().iterator(); iterator.hasNext();) {
				String key = iterator.next();
				String temp = key + "=" + params.get(key) + "&";
				url = url + temp;
			}
			url = url.substring(0, url.length() - 1);
			HttpGet httpGet = new HttpGet(url);
			httpGet.addHeader("Token","API调用令牌");
			CloseableHttpResponse response = httpClient.execute(httpGet);
			try {
				HttpEntity entity = response.getEntity();
				if (entity != null) {
					String str = EntityUtils.toString(entity, CHARSET);
					return str;
				}
			} finally {
				response.close();
				httpClient.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
python
import requests

if __name__ == '__main__':
    url = 'https://api.foreocean.com/forecast/port'
    headers = {'Token': 'API调用令牌'}
    params = {}
    response = requests.get(url, headers=headers, params=params)
    print(response.text)

返回结果示例

{
	"code": "1000", //响应码,1000-处理成功,其他代码说明请参考API返回错误代码说明
	"data": [{
			"name": "庄河港", //港口名称
			"description": "庄河地处大连与丹东两大城市的中间,拥有215公里的海岸线...", //文字描述
			"centerPoint": "122.97111111111111,39.62833333333333" //港口中心点经纬度坐标
		},
		{
			"name": "皮口港", //港口名称
			"description": "皮口港以辽南重镇皮口为依托,背靠东北广大腹地......", //文字描述
			"centerPoint": "122.38416666666667,39.344722222222224" //港口中心点经纬度坐标
		}
		......
	],
	"msg": "success", //返回信息描述
	"success": true //请求是否成功,true-成功,false-失败
}

港口预报数据

港口预报数据接口,参数为港口名,由港口元数据接口获得,返回结果是所查港口最多 72 小时预报数据

接口地址

https://api.foreocean.com/forecast/portData

请求方式

GET

请求参数说明

参数名称类型是否必须备注
TokenString是API 调用令牌,您申请应用的 Token,放在请求头中
nameString是港口名,港口预报元数据接口获得港口名

请求示例

java
public static void main(String[] args) {
		Map<String, Object> params = new HashMap<>(16);
		params.put("name", "庄河港");
		String requestUrl = "https://api.foreocean.com/forecast/portData";
		String response = get(requestUrl, params);
		System.out.println(response);
	}

	public static String get(String url, Map<String, Object> params) {
		try {
			CloseableHttpClient httpClient = HttpClients.createDefault();
			url = url + "?";
			for (Iterator<String> iterator = params.keySet().iterator(); iterator.hasNext();) {
				String key = iterator.next();
				String temp = key + "=" + params.get(key) + "&";
				url = url + temp;
			}
			url = url.substring(0, url.length() - 1);
			HttpGet httpGet = new HttpGet(url);
			httpGet.addHeader("Token","API调用令牌");
			CloseableHttpResponse response = httpClient.execute(httpGet);
			try {
				HttpEntity entity = response.getEntity();
				if (entity != null) {
					String str = EntityUtils.toString(entity, CHARSET);
					return str;
				}
			} finally {
				response.close();
				httpClient.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
python
import requests

if __name__ == '__main__':
    url = 'https://api.foreocean.com/forecast/portData'
    headers = {'Token': 'API调用令牌'}
    params = {'name': '庄河港'}
    response = requests.get(url, headers=headers, params=params)
    print(response.text)

返回结果示例

{
    "code": "1000", //响应码,1000-处理成功,其他代码说明请参考API返回错误代码说明
    "data": {
        "portID": "1", //港口编号
        "name": "庄河港", //港口名
        "releaseTime": "2021-12-28 10:00:00", //发布时间
        "updateTime": "2022-01-02 18:10:37", //更新时间
        "agency": "大连市海洋预报台", //预报单位
        "forecast": [
            {
                "seaWind": "4-5", //海面风
                "windFrom": "南转北", //风向
                "highTideLevel": "", //高潮位,单位cm厘米
                "seaTemp": "", //海温,单位°C摄氏度
                "waveFrom": "南转北", //浪向
                "lowTideTime": "", //低潮时
                "validity": "24", //预报时效
                "highTideTime": "", //高潮时
                "waveHeight": "0.6", //浪高,单位m米
                "lowTideLevel": "" //低潮位,单位cm厘米
            },
            {
                "seaWind": "5-6",
                "windFrom": "北",
                "highTideLevel": "",
                "seaTemp": "",
                "waveFrom": "北",
                "lowTideTime": "",
                "validity": "48",
                "highTideTime": "",
                "waveHeight": "0.6",
                "lowTideLevel": ""
            },
            {
                "seaWind": "4-5",
                "windFrom": "北",
                "highTideLevel": "",
                "seaTemp": "",
                "waveFrom": "北",
                "lowTideTime": "",
                "validity": "72",
                "highTideTime": "",
                "waveHeight": "0.5",
                "lowTideLevel": ""
            }
        ]
    },
    "msg": "success", //返回信息描述
    "success": true //请求是否成功,true-成功,false-失败
}
Prev
渔场