Inquiridor
Executar metodo "POST" na requisição httpWebRequest

Pergunta
-
Olá,
estou tentando gravar os dados de um objeto numa aplicação web que tenho acesso a ela através de uma API. E fiz uma classe para encapsular todos os métodos em que eu necessitar. E o seguinte método insere todos os campos da minha tabela em branco.
Public Function doCreate(objectURL As String, objecto As Object) As String Me.setRequestMethod("POST", objectURL) ' Create POST data and convert it to a byte array. Dim serializer As New JavaScriptSerializer() Dim postData As String = serializer.Serialize(objecto) Console.WriteLine("_____________________________________________________________________________________") Console.WriteLine(postData) Dim byteArray As Byte() byteArray = Encoding.UTF8.GetBytes(postData) postRequesT.ContentLength = byteArray.Length Dim dataStream As Stream = postRequesT.GetRequestStream() ' Set the ContentLength property of the WebRequest. dataStream.Write(byteArray, 0, byteArray.Length) 'parece que esta linha é que esta gerando o problema Write the data to the request stream. dim postResponse = DirectCast(postRequesT.GetResponse, HttpWebResponse) ' Releases the resources of the response. 'postResponse.Close() Console.WriteLine(postResponse.StatusCode) 'zzdataStream.Close() Return postResponse.StatusCode End Function 'metodo _______________________________________________________ Public Sub setRequestMethod(requestMethod As String, objectURL As String) Me.setURL_Object(objectURL) postRequesT.Method = requestMethod 'consulta atrés do metodo GET do HttpRequest postRequesT.KeepAlive = True postRequesT.ContentType = "application/json" postRequesT.Headers.Add("X-Knack-Application-Id: " & kn_appID) postRequesT.Headers.Add("X-Knack-REST-API-Key: " & kn_APIKey) End Sub ____________________________________________________ ~Public Sub setURL_Object(objectURL As String) Me.postRequesT = DirectCast(WebRequest.Create("urlBase" & objectURL), HttpWebRequest) End Sub
O estado retornado pelo métododoCreate(objectURL As String, objecto As Object) As String
é "200", o que indica que a operação foi executada com sucesso. Deve ser algo relacionado ao envio ou conversão da string em dataStream?
Obrigado, Best regards!
- Editado acamilo quarta-feira, 16 de novembro de 2016 06:11
Todas as Respostas
-
Não identifiquei onde você cita qual problema acontece.
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
-
-
Qual a estrutura e tipo do objeto que está enviado? E qual a estrutura e tipo do objeto no lado da API?
Normalmente quando isso acontece é porque o ModelBinder não conseguiu fazer a ligação entre as propriedades, seja por diferença no nome e/ou tipo.
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 18 de novembro de 2016 09:56