Mijn vraag:
Dus in een deel van mijn programma kan ik een POST doen naar mijn website voor bugs/features te melden, maar nu was ik wat aan't testen en blijkt dat niet meer werkt. Ik weet niet hoelang het niet meer werkt en ook niet hoe het komt.
Relevante software en hardware die ik gebruik: Visual Studio Community 2022
Wat ik al gevonden of geprobeerd heb:
Overal op het internet (stackoverflow/msdn/...) kom ik altijd hetzelfde tegen dus zal het wel kloppen zeker. Debuggen zowel vb zijde als php zijde maar ik geraak er niet aan uit waar het mis gaat.
Ik roep dus een php pagina aan en dit zijn de 2 eerste regels en daar kapt ie al op af omdat er geen post data is.
Heb de post data ook verstuurd met GET en dan komt alles mooi binnen. Dus ik vermoed dat er iets misgaat in het code stuk (lijn 45-47).
Dus in een deel van mijn programma kan ik een POST doen naar mijn website voor bugs/features te melden, maar nu was ik wat aan't testen en blijkt dat niet meer werkt. Ik weet niet hoelang het niet meer werkt en ook niet hoe het komt.
Relevante software en hardware die ik gebruik: Visual Studio Community 2022
Wat ik al gevonden of geprobeerd heb:
Overal op het internet (stackoverflow/msdn/...) kom ik altijd hetzelfde tegen dus zal het wel kloppen zeker. Debuggen zowel vb zijde als php zijde maar ik geraak er niet aan uit waar het mis gaat.
Visual Basic:
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
61
62
63
64
65
66
67
68
69
70
71
72
73
| ''' <summary> ''' Does a webrequest to the given URi ''' </summary> ''' <param name="Uri">URL</param> ''' <param name="sParameters"> parameters if needed</param> ''' <param name="UseForm">Add the parameters in a webform format</param> ''' <param name="sFiles">Any file to send with it (filepath \ filename)</param> ''' <returns>The response of the webpage or error</returns> Public Function Http_request(Uri As String, Optional sParameters As String = "", Optional bUseForm As Boolean = False, Optional ByRef sFiles As String = "") As String If Not bUseForm And (sParameters <> "") And sFiles.Length = 0 Then Uri &= If(Uri.LastIndexOf("?") > 0, "&", "?") & sParameters Dim thePage As String = "", iReRun As Short = 1 Do bTimeOut = False Debug.WriteLine(Date.UtcNow & ": Http_request" & If(iReRun > 1, " #" & iReRun, "") & ": " & Uri) Try ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate) ServicePointManager.UseNagleAlgorithm = True ServicePointManager.Expect100Continue = True ServicePointManager.CheckCertificateRevocationList = True ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 'ServicePointManager.reuseport = True '-since .net4.6 'ServicePointManager.DefaultConnectionLimit = ServicePointManager.DefaultPersistentConnectionLimit Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create(Uri), HttpWebRequest) With postReq .Timeout = 15000 .ServicePoint.ConnectionLeaseTimeout = .Timeout + 5000 .ServicePoint.MaxIdleTime = .Timeout .CookieContainer = tempCookies .Referer = "" .UserAgent = "Mozilla/5.0 (Windows; U; " & Environment.OSVersion.ToString & "; ru; rv:1.9.2.3)" .Accept = "text/plain, text/html" .ProtocolVersion = HttpVersion.Version11 .AllowAutoRedirect = True '.Proxy .KeepAlive = False If sFiles.Length = 0 Then .Method = "GET" If bUseForm Then 'Dim byteData As Byte() = encoding.GetBytes(sParameters) '.ContentLength = byteData.Length .ContentLength = sParameters.Length .ContentType = "application/x-www-form-urlencoded" .Method = "POST" Using postreqstream As New StreamWriter(postReq.GetRequestStream()) postreqstream.Write(sParameters) End Using 'Using postreqstream As Stream = postReq.GetRequestStream() 'postreqstream.Write(byteData, 0, byteData.Length) 'End Using End If Else 'when uploading files End If End With #Region "get the response" 'niet relevant dit werkt #End Region postReq = Nothing Exit Do 'nog exceptions Catch ex As Exception Debug.WriteLine("HTTP_REQUEST_Err: " & ex.Message) thePage = "Err: " & ex.Message Exit Do Finally End Try iReRun = CShort(iReRun + 1) Loop Until iReRun > 2 bTimeOut = False Return thePage End Function |
Ik roep dus een php pagina aan en dit zijn de 2 eerste regels en daar kapt ie al op af omdat er geen post data is.
PHP:
1
2
3
| <?php //necessary vars if(isset($_POST['p']) && is_numeric($_POST['p'])){$p_id = (int) $_POST['p'];}else{print_r($_POST);die('NoProductId');}//product id |
Heb de post data ook verstuurd met GET en dan komt alles mooi binnen. Dus ik vermoed dat er iets misgaat in het code stuk (lijn 45-47).
Visual Basic:
1
2
3
| Using postreqstream As New StreamWriter(postReq.GetRequestStream()) postreqstream.Write(sParameters) End Using |
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag