我使用Fsharp.DATA发送HTTP POST请求并读取响应状态码。在这种情况下,我期望成功时为302(重定向),失败时为200(确定)。我可以在小提琴手上看到我得到的是302,而该302又正在重新定向,因此生成了“ GET”请求。在我的代码中,我想阅读状态码“ 302”,以向我表明它已经起作用。但是,我的代码响应给了我后续的“ GET”请求(200)的状态代码,而不是我最初发出的请求(302)的状态代码。至少...我认为这就是为什么尽管我最初的POST请求具有302状态代码(在小提琴手中显示),但它仍读取200而不是302的原因
let postTEST cap:string =
if Http.Request("https://foo.com/m=account-creation/create_account",
body = FormValues [
"foo", "foo";
"foo", "foo";
"email1", email;
"onlyOneEmail", "1";
"password1", foo;
"onlyOnePassword", "1";
"foo", "foo";
"foo", "12";
"month", "10";
"year", "foo";
"foo", cap;
"foo", "foo";]).StatusCode = 320 then "worked"
else "Not worked"
答案 0 :(得分:1)
您可以通过自定义HTTP请求来禁用以下重定向:
Http.Request(
"https://example.url",
body = FormValues [],
customizeHttpRequest = fun r -> r.AllowAutoRedirect <- false; r)
有关更多信息,请参见the FSharp.Data section "Customizing the HTTP request"和the HttpWebRequest docs。