私は ServiceStack でサービスを構築しようとしていますが、その唯一の責任はリクエストを解釈し、リダイレクト応答を送信することです。このようなもの:
[Route("/redirect/", "POST")
public class Redirect : IReturnVoid
{
public string Something { get; set; }
}
public class RedirectService : Service
{
public object Post(Redirect req)
{
// make some decisions about stuff
return new HttpResult(){ StatusCode = HttpStatusCode.Redirect, Headers = {{HttpHeaders.Location, "place"}}};
}
}
フィドラーを使用して最初のテストを行い、コンテンツ タイプを application/json に設定し、適切なリクエスト ボディを作成しました。これはまさに期待どおりでした。サービス リクエストは 302 レスポンスを返し、期待される場所にリダイレクトされました。
また、基本的な Html フォーム ポストを使用してこれをテストしました。アクションhttp://myserviceuri/redirect/
も期待どおりに機能し、適切にリダイレクトされます。
ただし、SS c# クライアントを使用して同じサービスを呼び出そうとすると、問題が発生しました。aspx コード ビハインドまたは mvc コントローラーで次のコードを呼び出した場合
var client = new JsonServiceClient("uri);
client.post(new Redirect{Something = "something});
500 とエラー メッセージが表示されます。
The remote certificate is invalid according to the validation procedure.
自己証明書を備えた開発サーバーであるため、これは理にかなっています。しかし、他の方法でサービスを正常に呼び出すことができるため、これはニシンであると感じています。
別のタイプの C# クライアントを使用して要求を行う必要がありますか、それともカスタム ヘッダーをさらに設定する必要がありますか? 私がやろうとしていることを根本的に理解していませんか?
さらに情報が必要な場合はお知らせください。ありがとう。