2010-01-14 8 views
0

J'essaye de publier des données de l'application de vb.net au service Web asmx qui est situé sur le serveur!Afficher les données postales!

Pour l'affichage des données de l'application vb.net J'utilise ce code:

Public Function Post(ByVal url As String, ByVal data As String) As String 
    Dim vystup As String = Nothing 
    Try 
     'Our postvars 
     Dim buffer As Byte() = Encoding.ASCII.GetBytes(data) 
     'Initialisation, we use localhost, change if appliable 
     Dim WebReq As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest) 
     'Our method is post, otherwise the buffer (postvars) would be useless 
     WebReq.Method = "POST" 
     'We use form contentType, for the postvars. 
     WebReq.ContentType = "application/x-www-form-urlencoded" 
     'The length of the buffer (postvars) is used as contentlength. 
     WebReq.ContentLength = buffer.Length 
     'We open a stream for writing the postvars 
     Dim PostData As Stream = WebReq.GetRequestStream() 
     'Now we write, and afterwards, we close. Closing is always important! 
     PostData.Write(buffer, 0, buffer.Length) 
     PostData.Close() 
     'Get the response handle, we have no true response yet! 
     Dim WebResp As HttpWebResponse = DirectCast(WebReq.GetResponse(), HttpWebResponse) 
     'Let's show some information about the response 
     Console.WriteLine(WebResp.StatusCode) 
     Console.WriteLine(WebResp.Server) 

     'Now, we read the response (the string), and output it. 
     Dim Answer As Stream = WebResp.GetResponseStream() 
     Dim _Answer As New StreamReader(Answer) 

     'Congratulations, you just requested your first POST page, you 
     'can now start logging into most login forms, with your application 
     'Or other examples. 
     vystup = _Answer.ReadToEnd() 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 

    Return vystup.Trim() & vbLf 
End Function 

Maintenant, comment je peux récupérer ces données dans le service asmx?

+4

Officieusement, mais pourriez-vous s'il vous plaît pas fin le titre de vos questions et presque chaque phrase avec un point d'exclamation (!)? Il semble très bruyant et est généralement considéré comme offensant. Merci :) – Webleeuw

Répondre

0

Tout ce code donne l'impression que vous publiez des données sur une page Web classique, éventuellement un formulaire Web .Net, et pas un service Web. S'il s'agissait d'un service Web, vous transmettiez du XML à la place. Donc, en supposant qu'il s'agit d'un formulaire Web .Net, vous pouvez accéder aux données POST brutes à l'aide de Request.Form ("quelle que soit votre variable appelée"). Cependant, il semble que vous n'êtes pas passer variable = xyz dans les données POST de sorte qu'au lieu de votre formulaire web, vous allez avoir besoin d'accéder à la Request.InputStream premières

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim T As String 
    Using SR As New System.IO.StreamReader(Request.InputStream) 
     T = SR.ReadToEnd() 
    End Using 
End Sub 
+0

Vous avez raison! Ce code pour les données de publication ne fonctionne pas correctement! Où puis-je trouver un exemple simple indiquant que vb.net envoie des données au service Web asmx et des données d'enregistrement de service Web? – Comii

+0

Voici un de Microsoft: http://support.microsoft.com/kb/301273 –

Questions connexes