私が作成した VB.NET からサービス スタック API を呼び出しています。これは基本的に、人の国籍を渡すときに話される既定の言語を検索します。
Dim response As BindingList(Of
Symphony_SystemFunctionsDefaultLanguageResponse)
Dim client As New JsonServiceClient(BASEURI)
response = client.[Get](New Symphony_SystemFunctionsDefaultLanguage() With {.NationalityCode = strNationality})
strNationality は、"ME/Kuw" (アラビア語を返すクウェート) というデータベースのコードです。
「/」または「\」を含まないコードは正しく返されるため、コードを使用するとサービスと呼び出しが機能することがわかります。"ME/Kuw" サービスが見つかりません - / をルートとして解釈するようなもので、文字列 URLencoded を作成しようとしましたが、同じ問題です。
これは私のサービスと応答コードです。これは、.NationalityCode に「/」が含まれていない限り正常に機能します。
<Route("/SystemFunctions/DefaultLanguage/{NationalityCode}", "GET")>
Public Class Symphony_SystemFunctionsDefaultLanguage
Implements IReturn(Of BindingList(Of ymphony_SystemFunctionsDefaultLanguageResponse))
Private mvarNationalityCode As String
Public Property NationalityCode() As String
Get
NationalityCode = mvarNationalityCode
End Get
Set(ByVal Value As String)
mvarNationalityCode = Value
End Set
End Property
End Class
Public Class Symphony_SystemFunctionsDefaultLanguageResponse
Private mvarDefaultLanguage As String
Public Property DefaultLanguage() As String
Get
DefaultLanguage = mvarDefaultLanguage
End Get
Set(ByVal Value As String)
mvarDefaultLanguage = Value
End Set
End Property
End Class
そしてデータを取得する私のクラス。
public Class Symphony_SystemFunctionsService
Inherits Service Public Function [get](request As Symphony_SystemFunctionsDefaultLanguage) As Object
Using dbcontext As New EntitiesModel1
Dim sqlQueryString As String = "proc_s_GetDefaultLanguage '" & request.NationalityCode & "'"
Dim response As IEnumerable(Of Symphony_SystemFunctionsDefaultLanguageResponse) =
dbcontext.ExecuteQuery(Of
Symphony_SystemFunctionsDefaultLanguageResponse)(sqlQueryString)
Return response
End Using
End Function
End Class
これをどのように呼び出し、そのデータで「/」を渡すことを許可するかについての提案はありますか?