Https 使用F发布请求
我想用一个包含简单键值对的主体发出POST请求 像{Id:VVE87BDA-B0A1-48F3-A7C7-F3482CE2UIJ} 如何在F中执行此操作???请查看库Https 使用F发布请求,https,f#,Https,F#,我想用一个包含简单键值对的主体发出POST请求 像{Id:VVE87BDA-B0A1-48F3-A7C7-F3482CE2UIJ} 如何在F中执行此操作???请查看库 您也可以通过.NET库(如C或VB中的)来实现这一点。假设您不使用task或async,以下是它如何与HttpWebRequest一起工作: 在这两种情况下,最好确保reqStream超出范围并在GetResponse调用之前被释放,以确保请求数据被完全写入 Http.RequestString ( "http://
您也可以通过.NET库(如C或VB中的)来实现这一点。假设您不使用task或async,以下是它如何与HttpWebRequest一起工作: 在这两种情况下,最好确保reqStream超出范围并在GetResponse调用之前被释放,以确保请求数据被完全写入
Http.RequestString
( "http://httpbin.org/post",
headers = [ ContentType HttpContentTypes.Json ],
body = TextRequest """ {"test": 42} """)
let obj = {| Id = "VVE87BDA-B0A1-48F3-A7C7-F3482CE2UIJ" |}
let req = WebRequest.CreateHttp "http://www.example.com"
req.Method <- "POST"
req.ContentType <- "application/json"
do (
use reqStream = req.GetRequestStream()
use sw = new StreamWriter(reqStream )
obj |> JsonConvert.SerializeObject |> sw.Write
)
use resp = req.GetResponse()
use respStream = resp.GetResponseStream()
use sr = new StreamReader(respStream)
let respBody = sr.ReadToEnd()
printfn "%s" respBody
let obj = {| Id = "VVE87BDA-B0A1-48F3-A7C7-F3482CE2UIJ" |}
let req = WebRequest.CreateHttp "http://www.example.com"
req.Method <- "POST"
req.ContentType <- "application/json"
do! async {
use! reqStream = req.GetRequestStreamAsync() |> Async.AwaitTask
use sw = new StreamWriter(reqStream )
do! obj |> JsonConvert.SerializeObject |> sw.WriteAsync |> Async.AwaitTask
}
use! resp = req.AsyncGetResponse()
use respStream = resp.GetResponseStream()
use sr = new StreamReader(respStream)
let! respBody = sr.ReadToEndAsync() |> Async.AwaitTask
printfn "%s" respBody