F#catch System.Web.Exception
我已经用TickSpec(C#Specflow的F版本)编写了测试web服务的测试。当我运行测试时,我希望响应为200 OK,这一切都很好。当我故意发送一个错误的请求时,我收到一个400错误的请求,但是测试失败了,尽管400是我想要得到的。所以问题是-我如何捕捉异常并在F#中继续 这是我的一段代码:F#catch System.Web.Exception,f#,f#-data,F#,F# Data,我已经用TickSpec(C#Specflow的F版本)编写了测试web服务的测试。当我运行测试时,我希望响应为200 OK,这一切都很好。当我故意发送一个错误的请求时,我收到一个400错误的请求,但是测试失败了,尽管400是我想要得到的。所以问题是-我如何捕捉异常并在F#中继续 这是我的一段代码: let sendRequest(requestBody : HttpRequestBody) = let response = Http.Request(url, headers = re
let sendRequest(requestBody : HttpRequestBody) =
let response = Http.Request(url, headers = requestHeaders, body = requestBody)
let responseStatusCode = response.StatusCode
let extractedResponseData =
// code here to extract data from response
(responseStatusCode, extractedResponseData)
我得到的错误是
System.Net.WebException : The remote server returned an error: (400) Bad Request.
我希望能在比赛中试着接球
let response = Http.Request(url, headers = requestHeaders, body = requestBody)
这将解决问题
我可以这样做吗?我怎么做?添加:
silentHttpErrors = true
致:
例如:
let response = Http.Request(url, headers = requestHeaders, body = requestBody, silentHttpErrors = true)
解决了这个问题。现在,测试忽略System.Net.WebException,我可以测试应用程序与400错误请求相关的行为
更多信息:您在哪一个特定部分上卡住了?您是否阅读了此处的MSDN页面,通过添加以下位对其进行排序:silenthttperors=true以让response=Http.Request(url,headers=requestHeaders,body=requestBody)。这忽略了错误并继续。@Marta-你可以回答自己的问题,所以:)@DaveShaw-谢谢,我会回答的。
let response = Http.Request(url, headers = requestHeaders, body = requestBody, silentHttpErrors = true)