tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
319
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    GodWar GodWar ist offline Mitglied Gold
    Registriert seit
    Jun 2004
    Beiträge
    177
    Guten Abend! Ich hab das Inet jetzt 2 Stunden abgegraßt aber nix gefunden. Ich möchte meinem PHP Script auf meinem Server folgendes schicken "****.php?typ=0". Aber als POST Form. Der untere Code ist für VB6. t auch wunderbar. Möchte das ganze nun auf VB.Net übertrage. Problem ist HIER wo ich bin ist ein Router also geht "myRequest.GetResponse" nicht, da durch Proxy gesperrt. Aber die untere Methode funktioniert. Er machts mit "Navigate". Ganz einfach einen Link mit einem Forminhalt schicken und das PHP Script ließt es nachher mit "$nickname= addslashes($_POST['nickname']);" aus. Ich bekomms einfach nicht hin!

    Vielen Dank

    VB 6 Code:
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    
    Option Explicit
     
    '##################################### Linkstring zusammenfügen
    Public Sub PostRequest(URL, Names, Values, Server)
      Dim I, FormData, Name, Value
      
      For I = 0 To UBound(Names) - 1
        Name = URLEncode(Names(I))
        Value = URLEncode(Values(I))
        If FormData <> "" Then FormData = FormData & "&"
        FormData = FormData & Name & "=" & Value
      Next
      
      If Server = 1 Then
        ServerPostStringRequest URL, FormData
      Else
        IEPostStringRequest URL, FormData
      End If
    End Sub
     
    '##################################### Server aufrufen
    Public Sub ServerPostStringRequest(URL, FormData)
      Dim bFormData() As Byte
      ReDim bFormData(Len(FormData) - 1)
      bFormData = StrConv(FormData, vbFromUnicode)
      frmMain.WebBrowserServer.Navigate URL, 2 + 4 + 8, , bFormData, "Content-type: application/x-www-form-urlencoded" + Chr(10) + Chr(13)
     
      Do While frmMain.WebBrowserServer.Busy
        DoEvents
      Loop
    End Sub
     
    '##################################### Daten aufrufen
    Public Sub IEPostStringRequest(URL, FormData)
      Dim bFormData() As Byte
      ReDim bFormData(Len(FormData) - 1)
      bFormData = StrConv(FormData, vbFromUnicode)
      frmMain.WebBrowserDaten.Navigate URL, 2 + 4 + 8, , bFormData, "Content-type: application/x-www-form-urlencoded" + Chr(10) + Chr(13)
     
      Do While frmMain.WebBrowserDaten.Busy
        DoEvents
      Loop
    End Sub
     
    '##################################### URL encodieren
    Public Function URLEncode(Data)
      Dim I, C, Out
      
      For I = 1 To Len(Data)
        C = Asc(Mid(Data, I, 1))
        If C = 32 Then
          Out = Out + "+"
        ElseIf C < 48 Then
          Out = Out + "%" + Hex(C)
        Else
          Out = Out + Mid(Data, I, 1)
        End If
      Next
      URLEncode = Out
    End Function
     

  2. #2
    GodWar GodWar ist offline Mitglied Gold
    Registriert seit
    Jun 2004
    Beiträge
    177
    Nabend!

    Folgendes: Ich habe einen String "typ=0" also einen LEN von 5! In den unteren Zeilen sagt er mir es ist 10 lang. Und macht mir nach jedem Buchstabe noch einen Byte "0". Zu sehen im Bild:

    Bild:
    http://www.pic-upload.de/14.08.08/gyeha.gif

    Wieso? Was mache ich falsch? Eigendlich sollte er nur 5 Bytes übergeben!?

    DANKE

    Code:
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    Public Sub ServerPostStringRequest(ByVal URL As Uri, ByVal FormData As String)
            Dim [Unicode] As Encoding = Encoding.Unicode
            Dim unicodeBytes As Byte() = [Unicode].GetBytes(FormData)
     
            frmMain.WebBrowserServer.Navigate(URL, "", unicodeBytes, "Content-type: application/x-www-form-urlencoded" + Chr(10) + Chr(13))
     
            Do While frmMain.WebBrowserServer.IsBusy
                System.Windows.Forms.Application.DoEvents()
            Loop
        End Sub
     

  3. #3
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi
    Zitat Zitat von GodWar Beitrag anzeigen
    Nabend!
    [...]
    Wieso? Was mache ich falsch? Eigendlich sollte er nur 5 Bytes übergeben!?
    Du macht nichts falsch.
    Unicode besteht im Gegensatz zu ANSI-Code aus 2 Bytes. Da du an der Stelle keine Zeichen aus anderen Sprachen nutzt, ist das 2. Byte jeweils 0, da nicht benötigt.
    Es sollte für die Adresse jedoch auch genügen, wenn du als Kodierung die Default-Kodierung nutzt.
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

Ähnliche Themen

  1. in http request checkboxes setzen als multipart/data-form
    Von Student1903 im Forum Hosting & Webserver
    Antworten: 2
    Letzter Beitrag: 13.06.10, 16:17
  2. Http-request ?!
    Von mIschKo im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 03.10.07, 18:32
  3. HTTP Request
    Von MagicEpox im Forum Sonstige Sprachen
    Antworten: 2
    Letzter Beitrag: 02.08.07, 14:08
  4. Http Request
    Von NanoNuna im Forum PHP
    Antworten: 2
    Letzter Beitrag: 02.04.07, 10:55
  5. Http - Request
    Von rauchmelder im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 04.12.04, 22:42