渔场产品共包含两个接口,渔场元数据
可获取 53 个渔场的编号、名称及文字描述,渔场预报数据
需要渔场编号查询预报数据。
渔场元数据
渔场元数据接口,53 个渔场的编号、名称及文字描述,根据渔场编号获取预报数据
接口地址
https://api.foreocean.com/forecast/fishery
请求方式
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/fishery";
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/fishery'
headers = {'Token': 'API调用令牌'}
params = {}
response = requests.get(url, headers=headers, params=params)
print(response.text)
返回结果示例
{
"code": "1000", //响应码,1000-处理成功,其他代码说明请参考API返回错误代码说明
"data": [{
"fisheryID": "1", //渔场编号
"name": "渤海湾渔场", //渔场名称
"description": "面积约3600平方海里,水温年平均表层为11.5~12.4℃......", //渔场描述
"centerPoint": "117.75,38.75" //渔场中心点经纬度坐标
},
{
"fisheryID": "2", //渔场编号
"name": "滦河口渔场", //渔场名称
"description": "渤海滦河口外,面积约3600平方海里......", //渔场描述
"centerPoint": "119.25,39.25" //渔场中心点经纬度坐标
}
...
],
"msg": "success", //返回信息描述
"success": true //请求是否成功,true-成功,false-失败
}
经纬度转换渔场名称
根据经纬度坐标获取对应渔场的名称
接口地址
https://api.foreocean.com/forecast/fishery/name
请求方式
GET
请求参数说明
参数名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
Token | String | 是 | API 调用令牌,您申请应用的 Token,放在请求头中 |
location | String | 是 | 经纬度,例如:121.447518,37.519286 |
请求示例
java
public static void main(String[] args) {
Map<String, Object> params = new HashMap<>(16);
params.put("location", "121.447518,37.519286");
String requestUrl = "https://api.foreocean.com/forecast/fishery/name";
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/fishery/name'
headers = {'Token': 'API调用令牌'}
params = {'location': '121.447518,37.519286'}
response = requests.get(url, headers=headers, params=params)
print(response.text)
返回结果示例
{
"code": "1000",//响应码,1000-处理成功,其他代码说明请参考API返回错误代码说明
"data": {
"center": "121.25,30.25", //渔场中心点经纬度坐标
"name": "舟山渔场" //渔场名称
},
"msg": "success",//返回信息描述
"success": true//请求是否成功,true-成功,false-失败
}
渔场预报数据
渔场预报数据接口,参数为 fisheryID,由渔场元数据接口获得,返回结果是所查渔场的每天共 72 小时预报数据
接口地址
https://api.foreocean.com/forecast/fisheryData
请求方式
GET
请求参数说明
参数名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
Token | String | 是 | API 调用令牌,您申请应用的 Token,放在请求头中 |
fisheryID | String | 是 | 渔场 ID,渔场元数据接口获得渔场 ID |
请求示例
java
public static void main(String[] args) {
Map<String, Object> params = new HashMap<>(16);
params.put("fisheryID", "1");
String requestUrl = "https://api.foreocean.com/forecast/fisheryData";
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/fisheryData'
headers = {'Token': 'API调用令牌'}
params = {'fisheryID': '1'}
response = requests.get(url, headers=headers, params=params)
print(response.text)
返回结果示例
{
"code": "1000", //响应码,1000-处理成功,其他代码说明请参考API返回错误代码说明
"data": {
"fisheryID": "1", //渔场编号
"name": "渤海湾渔场", //渔场名称
"initialTime": "2020-01-09 09:00:00", //起报时间
"forecast": [{
"windLevel": "3.00", //风级,单位是级
"validity": "24", //预报时效,分为24小时、48小时、72小时
"waveHeight": "0.30", //浪高,单位是m米
"windDirection": "东南风" //风向
},
{
"windLevel": "3.00", //风级,单位是级
"validity": "48", //预报时效,分为24小时、48小时、72小时
"waveHeight": "0.30", //浪高,单位是m米
"windDirection": "西北风" //风向
},
{
"windLevel": "4.00", //风级,单位是级
"validity": "72", //预报时效,分为24小时、48小时、72小时
"waveHeight": "0.80", //浪高,单位是m米
"windDirection": "东风" //风向
}
]
},
"msg": "success", //返回信息描述
"success": true //请求是否成功,true-成功,false-失败
}