Fsharp.data "Illegal characters in path"
Fsharp.data "Illegal characters in path"
我刚刚开始使用 F#,正在探索 FSharp.Data。我正在尝试使用来自 www.ncdc.noaa.gov 的 Web 服务。第一个问题是 ncdc 在请求中需要一个令牌。我试图通过以下方法解决这个问题:
let apiUrl = "http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=GHCND&locationid=ZIP:28801&startdate=2010-04-01&enddate=2010-04-01"
let aRequestString =
Http.RequestString(
apiUrl,
httpMethod="GET",
headers = [ "token", "mytoken"])
let sf = WeatherData.Load(aRequestString)
这似乎有效 - fiddler 说我得到的结果对我和 JSONLint 来说看起来不错,但我从提供者那里得到 "Illegal characters in path."。
堆栈跟踪显示:
System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
System.IO.Path.Combine(String path1, String path2)
FSharp.Data.Runtime.IO.UriResolver.Resolve(Uri uri)
FSharp.Data.Runtime.IO.asyncRead(FSharpOption`1 _tp, UriResolver uriResolver, String formatName, String encodingStr, Uri uri)
FSharp.Data.Runtime.IO.asyncReadTextAtRuntime@238.Invoke(Uri uri)
Load
方法采用 URL 或文件路径,并从那里加载数据。如果您自己下载数据,则需要改用 Parse
方法。
let apiUrl = "http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=...."
let aRequestString =
Http.RequestString(
apiUrl,
httpMethod="GET",
headers = [ "token", "mytoken"])
let sf = WeatherData.Parse(aRequestString)
// ^^^^^
我刚刚开始使用 F#,正在探索 FSharp.Data。我正在尝试使用来自 www.ncdc.noaa.gov 的 Web 服务。第一个问题是 ncdc 在请求中需要一个令牌。我试图通过以下方法解决这个问题:
let apiUrl = "http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=GHCND&locationid=ZIP:28801&startdate=2010-04-01&enddate=2010-04-01"
let aRequestString =
Http.RequestString(
apiUrl,
httpMethod="GET",
headers = [ "token", "mytoken"])
let sf = WeatherData.Load(aRequestString)
这似乎有效 - fiddler 说我得到的结果对我和 JSONLint 来说看起来不错,但我从提供者那里得到 "Illegal characters in path."。
堆栈跟踪显示:
System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
System.IO.Path.Combine(String path1, String path2)
FSharp.Data.Runtime.IO.UriResolver.Resolve(Uri uri)
FSharp.Data.Runtime.IO.asyncRead(FSharpOption`1 _tp, UriResolver uriResolver, String formatName, String encodingStr, Uri uri)
FSharp.Data.Runtime.IO.asyncReadTextAtRuntime@238.Invoke(Uri uri)
Load
方法采用 URL 或文件路径,并从那里加载数据。如果您自己下载数据,则需要改用 Parse
方法。
let apiUrl = "http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=...."
let aRequestString =
Http.RequestString(
apiUrl,
httpMethod="GET",
headers = [ "token", "mytoken"])
let sf = WeatherData.Parse(aRequestString)
// ^^^^^