2014-10-14 3 views
1

JSON String을 기대하는 하나의 Java 응용 프로그램 (스프링 및 최대 절전 모드로 작성)으로 Tomcat 서버에 VB.NET에서 POST 요청을해야합니다. 나는 VB.NET에서 새로운 기능을 수행하는 방법에 대해 전혀 모른다. VB.NET에서 내 코드의 String을 요구하는 서버에 Visual Basic으로 POST 요청을 할 수 있습니까?

이와

Private Sub BtnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLogin.Click 
    Dim usuario = TextUsuario.Text 
    Dim contraseña = TextContraseña.Text 

    Dim userCredentials = New Linq.JObject 

    If usuario IsNot "" And contraseña IsNot "" Then 
     userCredentials.Add("login", usuario) 
     userCredentials.Add("password", contraseña) 

     Dim userCredentialsJSON = JsonConvert.SerializeObject(userCredentials) 
     Dim byteArray As Byte() = Encoding.UTF8.GetBytes(userCredentialsJSON) 

     Try 
      Dim url = "http://192.168.2.252:7080/SCTraker_Servidor/api/Session" 
      Dim httpWebRequest = WebRequest.Create(url) 
      httpWebRequest.Method = "POST" 

      httpWebRequest.ContentLength = byteArray.Length 
      httpWebRequest.ContentType = "application/x-www-form-urlencoded" 

      Dim writer As New StreamWriter(httpWebRequest.GetRequestStream(), System.Text.Encoding.UTF8) 
      writer.Write(userCredentialsJSON) 
      **writer.Close()** 

      Dim dataStream = httpWebRequest.GetResponse.GetResponseStream() 
      Dim reader As New StreamReader(dataStream) 
      Dim userJSON = reader.ReadLine 

      Dim user = Linq.JObject.Parse(userJSON) 
      VariablesGlobales.usuario = user 

      If user IsNot "" Then 
       Me.Hide() 
       AJAXJSON.Show() 

      Else 
       BarraEstado.Text = "No ha rellenado el campo usuario o contraseña" 
      End If 
     Catch webException As WebException 
      Dim status = webException.Status 
      BarraEstado.Text = status + ":" + webException.Message 

     Catch socketException As Sockets.SocketException 
      BarraEstado.Text = socketException.Message 

     End Try 
    End If 
End Sub 

(스마트 장치 용 응용 프로그램입니다 그래서 그게 전부 내가 Compact Framework에서 3.5를 사용하고 있습니다), 서버는 * "와 라인에 소켓 예외를 반환 * ** "그리고"기존 연결이 원격 호스트에 의해 강제로 닫혔습니다. "오류 코드 : 10054

+0

당신은 현재'application/x-www-form-urlencoded' 데이터를 보내고 있다고 서버에 말하고 있습니다. 내가 말할 수있는 한 당신은 그렇지 않습니다. 아마 서버가 연결을 끊는 이유 일 것입니다. – tcarvin

+0

감사합니다. – emilioxiri

답변

0

나는 이것이 전체 문제가 될 것이라고 생각하지 않았지만 성공을 주장 할 수는 없습니다!

현재 응용 프로그램/x-www-form-urlencoded 데이터를 (으)로 보내는 중입니다. 당신이 아니라면, 제가 말할 수있는, 그리고 아마 서버가 연결을 끊는 이유입니다.

스택 오버 플로우에 오신 것을 환영합니다!

관련 문제