Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# Fsharp.data";“路径中的非法字符”;_F#_F# Data - Fatal编程技术网

F# Fsharp.data";“路径中的非法字符”;

F# Fsharp.data";“路径中的非法字符”;,f#,f#-data,F#,F# Data,我刚开始在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" l

我刚开始在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都很好的结果,但我从提供者那里得到了“路径中的非法字符”

堆栈跟踪显示:

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) 
//                   ^^^^^

你需要逃避角色之类的吗?我不确定我是否理解。我似乎从服务中得到了有效的JSON。加载方法抛出,我将逃避什么?为什么?在哪里?不确定。非法字符只是暗示某个地方有未替换的字符。我也解决了这个问题。TomášPetříček——F#的Jon Skeet:)