[英]Why does new FileStream get access violation in REST service when path has IP Address?
[英]Access Violation when accessing REST service
我已經建立了一個第三方Rest / Json Web API的接口,在有效的測試用例下,一切都可以正常工作,但是當我從API請求一些無效的東西時,例如說一個不存在的作業,API返回一個響應,其中body ='null',內容類型為“ application / json; charset = utf-8”。 我不確定這是否是Web API的標准做法,但是當我在IHttpClient上調用Execute時,我最終遇到訪問沖突,並且客戶端退出。
Protrace是一個關注者
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 00007FFC6733DAAD 01:000000000077CAAD C:\Apps\Progress\117\bin\prow.dll
** ABL Stack Trace **
--> Write OpenEdge.Net.HTTP.Filter.Payload.JsonEntityWriter at line 463 (OpenEdge/Net/HTTP/Filter/Payload/JsonEntityWriter.r)
ExtractEntity OpenEdge.Net.HTTP.Lib.ABLSockets.ABLSocketLibrary at line 360 (OpenEdge/Net/HTTP/Lib/ABLSockets/ABLSocketLibrary.r)
Execute OpenEdge.Net.HTTP.Lib.ABLSockets.ABLSocketLibrary at line 312 (OpenEdge/Net/HTTP/Lib/ABLSockets/ABLSocketLibrary.r)
Execute OpenEdge.Net.HTTP.HttpClient at line 154 (OpenEdge/Net/HTTP/HttpClient.r)
TryRest Tempo.TempoApi at line 1264 (D:\_Dev\OnTap-Trunk\rcode\Tempo\TempoApi.r)
ExecuteRest Tempo.TempoApi at line 234 (D:\_Dev\OnTap-Trunk\rcode\Tempo\TempoApi.r)
TryRest是:
METHOD PRIVATE INTEGER TryRest(
INPUT oUri AS URI,
INPUT cType AS CHARACTER,
INPUT cContentType AS CHARACTER,
INPUT oContent AS Object,
OUTPUT oResponse AS IHttpResponse ):
DEFINE VARIABLE result AS INTEGER NO-UNDO.
DEFINE VARIABLE oRequest AS IHttpRequest NO-UNDO.
CASE cType:
WHEN "GET" THEN
oRequest = RequestBuilder:GET(oURI)
:AddHeader("Authorization", "Bearer " + STRING(cAccessToken))
:AcceptJson()
:REQUEST.
END CASE.
oResponse = ResponseBuilder:Build():Response.
oClient:EXECUTE(oRequest,oResponse).
RETURN oResponse:StatusCode.
CATCH e AS Progress.Lang.Error:
UNDO, THROW e.
END CATCH.
END METHOD.
我正在使用最新的OpenEdge客戶端11.7.2 Windows x64。
我的問題是,對於無效請求,Web API返回“ Null”是否正常?
其次,這顯然是OpenEdge.Net.HTTP.Lib中未處理的異常,這不應導致客戶端崩潰。解決此問題的任何想法? 我試過將AcceptJson()更改為AcceptAll和AcceptHTML,但是protrace相同,在JsonEntityWriter中崩潰。
謝謝
不會,如果您對無效的路由提出請求,通常RESTful API將返回404。 我能想到的唯一例外是,如果您嘗試訪問包含參數作為URI一部分的路由。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.