Как разработать Invoke-WebRequest для нескольких вызовов API с несколькими переменными из CSV?(Powershell) - PullRequest
0 голосов
/ 24 декабря 2018

Я пытаюсь вызвать Dark Sky API для получения прогноза погоды для каждого местоположения в CSV-файле с сотнями строк и записать их в текстовый файл.Вот пример первых 5 строк CSV ...

ip              city        region_code zip     latitude  longitude
75.161.17.209   Albuquerque NM          87114   35.1868  -106.6652
68.55.28.227    Plymouth    MI          48170   42.3688  -83.4799
72.95.198.227   Homestead   PA          15120   40.3926  -79.9052
68.180.94.219   Normal      IL          61761   40.5124  -88.9883
75.132.165.245  Belleville  IL          62226   38.5352  -90.0006

URI отформатирован следующим образом ...

https://api.darksky.net/forecast/[APIKey]/$latitude ,$longitude ,$ForcastTime ?exclude=currently,minutely,hourly,flags&units=us

В этом URI есть 3 переменные.$ широта, $ долгота и $ ForecastTime.$ ForecastTime прост, потому что он одинаков для всех запросов, поэтому я уже определил его как ...

$ForecastTime = Get-Date -Date $(Get-Date).AddDays(1) -Format yyyy-MM-ddTHH:mm:ss

... для того, чтобы дать мне прогнозную информацию на завтра.Это тот формат, к которому призывает Dark Sky, и он прекрасно работает.

У меня проблемы с определением $ latitude & $ longitude в качестве переменных и форматированием Invoke-WebRequest, чтобы я мог получить данные о погоде для всей строкиместоположения.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 24 декабря 2018

Вот пример кода с Invoke-RestMethod, но вы также можете работать с Invoke-WebRequest.Мне нравится использовать Invoke-RestMethod для взаимодействия с API. Попробуйте и дайте мне знать, работает ли он или нет.

$ForecastTime = Get-Date -Date $(Get-Date).AddDays(1) -Format yyyy-MM-ddTHH:mm:ss;
Import-CSV './input.csv' | ForEach-Object {
     $result = Invoke-RestMethod -Uri "https://api.darksky.net/forecast/$apiKey/$_.latitude,$_.longitude,$ForcastTime?exclude=currently,minutely,hourly,flags&units=us"
}

PS: если в имени столбца CSV есть пробелы, вы можете прочитать его как$_.'Region Code'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...