0
私は新しい(任意のヘルプは非常に感謝されます)、私は残りのAPIに書き込むために、このクラスを実装しようとしています。それが行うのは、いくつかのデータを渡し、postAsJsonAsyncをサービスに渡すことだけです。 これはC#で書かれ、VB.netに変換されてVB.netアプリケーションソリューションに追加されました。 Uriの別のインスタンスを初期化するとき、それは一度動作し、2回目の呼び出しで失敗します。 例外がスローされました:System.Net.Http.dllequestの 'System.InvalidOperationException'。 "} {"このインスタンスは既に1つ以上の要求を開始しています。プロパティのみ最初の要求を送信する前に変更することができる "} コードここに:。私は間違って何をしていますか、残りのAPIを呼び出す
Imports System.Collections.Generic
Imports System.Configuration
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports System.Net.Http
Imports System.Net.Http.Headers
Namespace Logging
Public Class LogMessage
Public Property Application As String
Public Property Area As String
Public Property Activity As String
Public Property Description As String
Public Property User As String
End Class
Public Class ActionLogging
Public Shared Client As New HttpClient()
Public Shared Function AddToActionLog(Activity As String, Description As String, User As String)
Dim message = New LogMessage() With { _
.Activity = Activity, _
.Description = Description, _
.User = User, _
.Application = ConfigurationManager.AppSettings("Application"), _
.Area = ConfigurationManager.AppSettings("Area") _
}
If Run(message) IsNot Nothing
Run(message).Wait()
End If
End Function
Public Shared Function CreateMessage(message As LogMessage) As Uri
Dim task = Client.PostAsJsonAsync("Action", message)
task.Wait()
Dim response As HttpResponseMessage = task.Result
response.EnsureSuccessStatusCode()
Return response.Headers.Location
End Function
Public Shared Function Run(message As LogMessage) As Task
Client.BaseAddress = new Uri(ConfigurationManager.AppSettings("RestAPIServer"))
Client.DefaultRequestHeaders.Accept.Clear()
Client.DefaultRequestHeaders.Accept.Add(New MediaTypeWithQualityHeaderValue("application/json"))
CreateMessage(message)
End Function
End Class
End Namespace
不明である例外のどの部分あなたの中'ラン() '送る前だけを行うことができますが何? – CodeCaster
はい、私は例外を理解しています、私は 'DefaultRequestHeaders'を一度しかセットアップすることができません。クラスは同じセッション内で何度も呼び出されます。私は呼び出しを行っている方法は明らかに間違っていますが、 –
OK解決策が見つかりました。今後これが他の人に役立つことを願って。 –