Hello, I get an error in the application market catalog do not know where I'm wrong, the one below is the code I added to a module by error on the line in red
and that the code in Form1
I can not find the error
Thanks for your help
Code:
Imports System.Net
Imports System.Text
Imports System.IO
Imports Newtonsoft.Json
Module SportsAPI
Public ssoid As String 'session token
Private Function SendSportsReq(ByVal jsonString As String)
Dim request As WebRequest = _
WebRequest.Create("https://api.betfair.com/exchange/betting/json-rpc/v1")
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(jsonString)
request.Method = "POST"
request.ContentType = "application/json"
request.ContentLength = byteArray.Length
request.Headers.Add("X-Application: MY APPKEY")
request.Headers.Add("X-Authentication: " & ssoid)
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
[COLOR="Red"]Dim response As WebResponse = request.GetResponse()[/COLOR]
dataStream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd
Return responseFromServer
End Function
'Classes and function for MarketCatalogue request
Public Class MarketCatalogueRequest
Public jsonrpc As String = "2.0"
Public method As String = "SportsAPING/v1.0/listMarketCatalogue"
Public params As New Params
Public Id As Integer = 1
End Class
Public Class Params
Public filter As New Filter
Public sort As String = "FIRST_TO_START"
Public maxResults As String = "200"
Public marketProjection As New List(Of String)
End Class
Public Class Filter
Public eventTypelds As New List(Of String)
Public marketCountries As New List(Of String)
Public marketTypeCodes As New List(Of String)
Public marketStartTime As New StartTime
End Class
Public Class StartTime
Public from As String
Public [to] As String
End Class
Function SerializeMarketCatalogueRequest(ByVal requestList As _
List(Of MarketCatalogueRequest))
Return JsonConvert.SerializeObject(requestList)
End Function
'Classes and function for listMarketCatalogue response
Public Class MarketCatalogueResponse
Public jsonrpc As String
Public result As List(Of MarketCatalogue)
Public id As Integer
End Class
Public Class MarketCatalogue
Public marketld As String
Public marketName As String
Public marketStartTime As String
Public totalMatched As Double
Public runners As New List(Of Runners)()
Public [event] As New [Event]
End Class
Public Class Runners
Public selectionld As Integer
Public runnerName As String
Public handicap As Double
Public sortPriority As Integer
End Class
Public Class [Event]
Public id As Integer
Public name As String
Public countryCode As String
Public timezone As String
Public venue As String
Public openDate As String
End Class
Function DeserializeMarketCatalogueResponse(ByVal jsonResponse As String)
Return JsonConvert.DeserializeObject(Of _
MarketCatalogueResponse())(SendSportsReq(jsonResponse))
End Function
End Module
Code:
Imports System.IO
Public Class Form1
Public Sub Initialise()
ListMarketCatalogue()
End Sub
Private Sub ListMarketCatalogue()
Dim requestList As New List(Of MarketCatalogueRequest)
Dim request As New MarketCatalogueRequest
Dim params As New Params
Dim eventTypelds As New List(Of String)
eventTypelds.Add("7")
params.filter.eventTypelds = eventTypelds
Dim marketCountries As New List(Of String)
marketCountries.Add("GB")
params.filter.marketCountries = marketCountries
Dim marketProjection As New List(Of String)
marketProjection.Add("MARKET_START_TIME")
marketProjection.Add("RUNNER_DESCRIPTION")
marketProjection.Add("EVENT")
params.marketProjection = marketProjection
Dim marketTypeCodes As New List(Of String)
marketTypeCodes.Add("WIN")
params.filter.marketTypeCodes = marketTypeCodes
Dim marketStartTime As New StartTime
If Today.IsDaylightSavingTime() Then
marketStartTime.from = Format(Date.Now, "yyyy-MM-dd") & "T" & _
Format(Now.AddHours(-1), "Long Time") & "Z"
Else
marketStartTime.from = Format(Date.Now, "yyyy-MM-dd") & "T" & _
Format(Now, "Long Time") & "Z"
End If
marketStartTime.to = Today.ToString("u").Replace(" ", "T").Replace("00:00", "23:00")
params.filter.marketStartTime = marketStartTime
request.params = params
requestList.Add(request)
Dim allMarkets() As MarketCatalogueResponse
allMarkets = _
DeserializeMarketCatalogueResponse(SerializeMarketCatalogueRequest(requestList))
For n = 0 To allMarkets(0).result.Count - 1
For m = 0 To allMarkets(0).result(n).runners.Count - 1
Dim course() As String
course = Split(allMarkets(0).result(n).event.name)
Print(Format(allMarkets(0).result(n).marketStartTime, "Short Time") & " " & _
course(0) & " " & allMarkets(0).result(n).marketName & " " & _
allMarkets(0).result(n).runners.Item(m).runnerName)
Next
Next
End Sub
End Class
Thanks for your help

