我正在尝试从此网络page加载一些数据。我要获取的信息部分是此特定部分:
我检查了页面,看到了这个班级&id:
所以我尝试这样:
FormData formData = FormData.fromMap({
"image-param-name": await MultipartFile.fromFile(
imageFile.path,
filename: fileName,
contentType: new MediaType("image", "jpeg"), //add this
),
});
然后我得到一个没有任何信息的数据行。我在做什么错了?
谢谢。
已更新::感谢QHarr:
var dio = Dio();
String fileName = imageFile.path.split('/').last;
FormData formData = FormData.fromMap({
"image-param-name": await MultipartFile.fromFile(
imageFile.path,
filename: fileName,
contentType: new MediaType("image", "jpeg"), //add this
),
});
var response = await dio.post(
"url",
data: formData,
options: Options(
headers: {
"Authorization": auth-token
},
),
onSendProgress: (int sent, int total) {
debugPrint("sent${sent.toString()}" + " total${total.toString()}");
},
).whenComplete(() {
debugPrint("complete:");
}).catchError((onError) {
debugPrint("error:${onError.toString()}");
});
答案 0 :(得分:1)
它是动态填充的。如果您不介意一些微小的差异,则可以发出两个请求。一个到初始URL,以获取一个时间戳值;然后发出一个API请求(与页面一样),并添加先前检索到的时间戳,以获取正确期间的预测。解析响应以获取持有avisos的json
library(httr)
library(rvest)
library(jsonlite)
headers = c('Referer' = 'https://www.aemet.es/es/eltiempo/prediccion/avisos?w=mna')
date_value <- read_html('https://www.aemet.es/es/eltiempo/prediccion/avisos?w=mna') %>% html_node('#fecha-seleccionada-origen') %>% html_attr('value')
data <- httr::GET(url = paste0('https://www.aemet.es/es/api-eltiempo/resumen-avisos-geojson/PB/', date_value , '/D+1'), httr::add_headers(.headers=headers))
avisos <- jsonlite::parse_json(read_html(data$content) %>% html_node('p') %>% html_text())$objects$Avisos$geometries