You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB向PHP发送POST请求时双参数无法被识别该如何解决

问题原因

你拼接POST参数时没有按照application/x-www-form-urlencoded格式要求,在两个键值对之间添加&分隔符,导致PHP服务端会把整段字符串识别为单个参数,无法单独提取future01和StudentNumber两个字段。
另外建议对参数值做URL编码,避免日期里的空格、斜杠等特殊字符破坏参数解析规则。

修复方案

修改VB代码中参数拼接的部分,代码如下:

Dim dateTime As DateTime = ReturnAsDateTime(thedate, thetime)
Dim dateformat2 As String = "M/d/yyyy HH:mm"
Dim dateformat3 As String = dateTime.ToString(dateformat2)
Dim StudentNOString As String = thestudent.Number.ToString()

' 对参数值做URL编码,无需额外引用程序集,.NET Framework 4.0+ 原生支持
Dim encodedDate As String = WebUtility.UrlEncode(dateformat3)
Dim encodedStudentNo As String = WebUtility.UrlEncode(StudentNOString)
' 两个参数之间加&分隔符
Dim upString As String = "future01=" & encodedDate & "&StudentNumber=" & encodedStudentNo


System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Dim request As WebRequest = WebRequest.Create("https://example.com/tofilePHPfile.php")
request.Method = "POST"
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(upString)
request.ContentType = "application/x-www-form-urlencoded"
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Dim response As WebResponse = request.GetResponse()
dataStream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()
reader.Close()
dataStream.Close()
response.Close()
MsgBox(responseFromServer)

修改完成后即可正常提交两个参数,PHP服务端可以正确识别两个POST字段。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:06:03