港口产品共包含两个接口,港口预报元数据
可获取 40 个各级预报机构预报的港口,返回港口编号、名称及文字描述,港口预报数据
需要港口编号查询预报数据。
港口预报元数据
港口预报元数据接口,包括 40 个各级预报机构预报的港口,返回港口编号、名称及文字描述,根据港口编号查询预报数据
接口地址
https://api.foreocean.com/forecast/port
请求方式
GET
请求参数说明
参数名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
Token | String | 是 | 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
请求参数说明
参数名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
Token | String | 是 | API 调用令牌,您申请应用的 Token,放在请求头中 |
name | String | 是 | 港口名,港口预报元数据接口获得港口名 |
请求示例
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-失败
}