1

ServiceStack VB.netでURLパラメータを抽出するには?

クエリ URL の例:

http://localhost:3318/api/ActionName/?callback=cb&format=json&SomeParam1=19-11-2012&SomeParam2=123123

参考までに、jQuery AJAX でリクエストを作成しています。

グローバル.aspx

Public Class Global_asax
    Inherits System.Web.HttpApplication

    Public Class HelloAppHost
        Inherits AppHostBase

        Public Sub New()
            MyBase.New("Web Services", GetType(BiffaNetWebService).Assembly)
        End Sub

        Public Overrides Sub Configure(ByVal container As Container)
            Routes.Add(Of APIRequest)("/api").Add(Of APIRequest)("/api/{ActionName}")
        End Sub
    End Class

    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        Dim apphost = New HelloAppHost()
        apphost.Init()
    End Sub

End Class

WS.vb

Public Class WebService
    Implements IService(Of APIRequest)

    Public Function Execute(ByVal request As APIRequest) As Object Implements ServiceStack.ServiceHost.IService(Of APIRequest).Execute

        Dim ActionName = request.ActionName
        Dim UserData = request.UserData

        // Do some stuff here and return JSON

    End Function

End Class
4

1 に答える 1

1

ServiceStack の新しい APIを継承する場合、Serviceまたは(古い API を使い続けたい場合)、HTTP API へのきめ細かいアクセスを取得するために使用できるプロパティにアクセスできます。ServiceBase(of T)base.Requestbase.Response

var someParam = base.Request.QueryString["SomeParam"];

それ以外の場合、サービスにインターフェースのみを実装したい場合は、ServiceStack を取得してリクエストの RequestContext をサービスに注入IServiceする実装も必要です。IRequiresRequestContextこの場合、次の方法で QueryString にアクセスできます。

var httpReq = base.RequestContext.Get<IHttpRequest>();

    var someParam = httpReq.QueryString["SomeParam"];

于 2012-11-19T15:46:16.377 に答える