Итак, я создаю приложение для Android, которое отправляет через HTTP этот Json
{"InfoCustomer":[{"AWB":"SHP#.39535","NUMBOXES":"2","FB":"0.5","CUBIC":"3.14","ORIGIN":"QUITO","ACCEPT":"1","REJECT":"","SHIPTO":"GG MIAMI"}]}
Мой контроллер VB выглядит так:
<Route("image/Upload2")>
<AllowAnonymous>
<HttpPost>
Public Async Function Upload2() As Task(Of HttpResponseMessage)
Try
Dim StringJSON As String = ""
Dim httpRequest = HttpContext.Current.Request
If httpRequest.Files.Count > 0 Then
For Each file As String In httpRequest.Files
Dim postedFile = httpRequest.Files(file)
Dim fileName = postedFile.FileName
If file.Equals("INFOJSON") Then
StringJSON = System.Web.HttpUtility.UrlDecode(postedFile.ToString)
GuardarEnArchivo("StringJSON:" & StringJSON)
End If
Next
End If
Dim objCrd As CargoplusService = New CargoplusService()
Dim IdSignatureHeader As String = ""
IdSignatureHeader = objCrd.funInsSignatureShippingDetailPOD2(StringJSON)
' 'Return New HttpResponseMessage()
Return Request.CreateResponse(Of String)(IdSignatureHeader)
Catch ex As Exception
GuardarEnArchivo(ex.ToString)
Return New HttpResponseMessage()
End Try
End Function
И моя функция выглядит так:
Public Function funInsSignatureShippingDetailPOD2(ByVal pStringJSON As String) As String
Try
Dim strSQL As String 'String donde se almacena el nombre del SP
Dim objConn As dbConnector = New dbConnector() 'Coneccion para la base de datos
Dim dsData As New DataSet
Dim json As JObject = JObject.Parse(pStringJSON)
Dim data As List(Of JToken) = json.Children().ToList ''deserializa el json
Dim IdSignatureHeader As Integer = 88 'inicializa valores con -1
Dim InsWhenUpd As Integer = 99
Dim NewSignature As String = "0" 'Declaracion de de un string vacio
For Each item As JProperty In data 'itera cada item
item.CreateReader()
Select Case item.Name
Case "InfoCustomer"
For Each msg As JObject In item.Values
'GuardarEnArchivo(msg.ToString())
Dim IdShippingDetail As String = msg("IdShippingDetail").ToString
Dim Boxes As String = msg("Boxes").ToString
Dim Aceptado As String = msg("Aceptado").ToString
NewSignature = msg("NewSignature").ToString
Dim IdRelCompanyType As String = msg("IdRelCompanyType").ToString
Dim ShippingDate As String = msg("ShippingDate").ToString
Dim ActiveSignature As String = msg("ActiveSignature").ToString
Dim AWB As String = msg("AWB").ToString
Dim FB As String = msg("FB").ToString
Dim Cubic As String = msg("Cubic").ToString
Dim Origin As String = msg("Origin").ToString
Dim ShipToName As String = msg("ShipToName").ToString
'If NewSignature.Equals("0") Then 'Crear nuevos registros en la tabla CM_SHIPPING_DETAIL_POD
' GuardarEnArchivo("CREAR NUEVA FIRMA")
strSQL = "usp_InsSignatureShippingDetailPOD"
dsData = objConn.executeSQLDataset(strSQL, {{"@IdSignatureHeader", IdSignatureHeader},
{"@SignatureDate", Convert.ToDateTime(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"))},
{"@SignaturePath", "pPathImage"},
{"@SignatureComments", ""},
{"@IdShippingDetailPOD", "-1"},
{"@IdShippingDetail", IdShippingDetail},
{"@Boxes", Boxes},
{"@ShippingAccepted", Aceptado},
{"@InsOrUpd", NewSignature},
{"@IdRelCompanyType", IdRelCompanyType},
{"@ShippingDate", ShippingDate},
{"@Active", ActiveSignature},
{"@AWB", AWB},
{"@FB", FB},
{"@Cubic", Cubic},
{"@Origin", Origin},
{"@InsWhenUpd", InsWhenUpd},
{"@ShipToName", ShipToName}
})
IdSignatureHeader = dsData.Tables(0).Rows(0).Item("IdSignatureHeader")
'End If
Next
End Select
Next
If NewSignature.Equals("0") Then
Return "Executed"
Else
Return "Not Executed"
End If
Catch ex As Exception
GuardarEnArchivo(ex.ToString)
Return ex.Message + pStringJSON + "asi es"
End Try
End Function
Как новый разработчик веб-сервисов, я понятия не имею, как правильно отлаживать мой веб-сервис. Единственный способ, которым я могу это сделать, - это протестировать сервис через онлайн-тестеры API, который возвращает следующее исключение: Ошибка чтения JObject fromJsonReader. Путь '', строка 0, позиция 0, пожалуйста, помогите