servicestackを使用して単純なAPIpost呼び出しを行おうとしていますが、「notfound」という例外がスローされ続けます。同じpost呼び出しがWebブラウザのRESTAPI(postmanなど)を使用してAPIに直接行われる場合、api呼び出しは機能します。
リクエストオブジェクトをルート属性で装飾しました
[Route("/register", "POST")]
public class Register : IReturn<RegistrationResponse>
{
public DateTime? BirthDate { get; set; }
public string Continue { get; set; }
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public string Password { get; set; }
}
JsonServiceClientはベースURIで初期化されますが、次の呼び出しは失敗します
_client = new JsonServiceClient(_apiUri);
_client.HttpMethod = HttpMethods.Post;
var response = _client.Send(body);
私がキャッチする例外は次のとおりです。
$ exception {"Not Found"} System.Exception {ServiceStack.ServiceClient.Web.WebServiceException} at ServiceStack.ServiceClient.Web.ServiceClientBase.ThrowWebServiceException [TResponse](Exception ex、String requestUri)at ServiceStack.ServiceClient.Web.ServiceClientBase.ThrowResponseTypeException [TResponse](Object request、Exception ex、String requestUri)at ServiceStack.ServiceClient.Web.ServiceClientBase.HandleResponseException [TResponse](Exception ex、Object request、String requestUri、Func
1 createWebRequest, Func
2 getResponse、TResponse&response)atServiceStack.ServiceClient.Web。 ApiService.cs:line 81のApiService`2.Post(String path、TParams body)でのServiceClientBase.Send [TResponse](Object request)
servicestackの新しいAPIに関するドキュメントには、リクエストDTOを装飾するRoute属性の使用と、IReturnの使用が記載されていますが、Sendメソッドの背後にあるコードを見ると、リクエストの名前から残りのAPIURLが計算されています。 、これは、リクエストdtoに別の名前を付けることができないことを意味します。
public virtual TResponse Send<TResponse>(object request)
{
var requestUri = this.SyncReplyBaseUri.WithTrailingSlash() + request.GetType().Name;
var client = SendRequest(requestUri, request);
try
{
var webResponse = client.GetResponse();
return HandleResponse<TResponse>(webResponse);
}
catch (Exception ex)
{
TResponse response;
if (!HandleResponseException(ex,
request,
requestUri,
() => SendRequest(HttpMethods.Post, requestUri, request),
c => c.GetResponse(),
out response))
{
throw;
}
return response;
}
}
Not Found例外の原因は何ですか?