渔区网格产品共包含两个接口,渔区网格元数据
可获取 1449 个网格编号并返回名称,渔区网格预报数据
需要网格编号查询预报数据。
渔区网格元数据
网格元数据接口,近海 0.5 度共 1449 个网格编号及所属海域,根据网格编号获得预报数据
接口地址
https://api.foreocean.com/forecast/grids
请求方式
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/grids";
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/grids'
headers = {'Token': 'API调用令牌'}
params = {}
response = requests.get(url, headers=headers, params=params)
print(response.text)
返回结果示例
{
"code": "1000", //响应码, 1000-处理成功,其他代码说明请参考API返回错误代码说明
"data": [{
"name": "渤海", //网格名称
"gridID": "1" //网格编号
},
{
"name": "渤海", //网格名称
"gridID": "2" //网格编号
},
.....
],
"msg": "success", //返回信息描述
"success": true //请求是否成功,true-成功,false-失败
}
渔区网格预报数据
网格预报数据接口,参数为 gridID,由网格元数据接口获得,返回结果为所查网格编号的逐六小时共 72 小时预报数据
接口地址
https://api.foreocean.com/forecast/gridData
请求方式
GET
请求参数说明
参数名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
Token | String | 是 | API 调用令牌,您申请应用的 Token,放在请求头中 |
gridID | String | 是 | 网格 ID,渔场网格元数据接口获得网格 ID |
请求示例
java
public static void main(String[] args) {
Map<String, Object> params = new HashMap<>(16);
params.put("gridID", "1");
String requestUrl = "https://api.foreocean.com/forecast/gridData";
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/gridData'
headers = {'Token': 'API调用令牌'}
params = {'gridID': '1'}
response = requests.get(url, headers=headers, params=params)
print(response.text)
返回结果示例
{
"code": "1000", //响应码,1000-处理成功,其他代码说明请参考API返回错误代码说明
"data": {
"gridID": "1", //网格ID
"releaseDate": "2020-01-09 08:21:00", //发布时间
"initialTime": "2020-01-09 08:00:00", //起报时间
"forecast": [{
"period": "1.4", //周期,单位是s秒
"sst": "1.90", //海温,单位是°C摄氏度
"forecastTime": "2020-01-09 08:00:00", //预报时间
"waveHeight": "0.00", //浪高,单位是m米
"waveDirection": "73", //浪向角度,范围0~360,0为正北,90为正东,180为正南,270为正西
"windDirection": "332", //风向角度,范围0~360,0为正北,90为正东,180为正南,270为正西
"windSpeed": "1.60" //风速,单位是m/s米每秒
}]
},
"msg": "success", //返回信息描述
"success": true //请求是否成功,true-成功,false-失败
}