请教了。有关VB VC解决HTTP POST方式向HTTP服务器发送请求的问题

syoki 2003-05-29 01:13:47
我要把文本文件中内容提取后组成XML包用HTTP协议,POST方式发送到HTTP服务器的断口并将返回结果生成文本,服务器端不管,只需解决客户端即可,拜托!请求支援
越详细越好。最好是VB,VC直接调用相关的类,而不是用WINSOCK。非常感谢!!!
...全文
258 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
online 2003-06-02
  • 打赏
  • 举报
回复
这一段代码希望对你有用
在远程服务器写一个ASP文件接收数据如:
<%
If Request.ServerVariables("REQUEST_METHOD")="POST" Then
ON ERROR RESUME NEXT
Dim AttendArray
Dim ResStr
Set xmldom=Server.CreateObject("Microsoft.XMLDOM")
Set Obj=Server.CreateObject("SAS.SHIFT")
xmldom.load(Request)
Set Rs=Server.CreateObject("ADODB.Recordset")
Rs.Open xmldom
AttendArray=Rs.GetRows
If IsArray(AttendArray) Then
ResStr=Obj.AddAttendRecord(AttendArray)
End If
If Err.number =0 Then
Response.Write "OK"
Set xmlResult=Server.CreateObject("Microsoft.XMLDOM")
xmlResult.save(Response)
Set xmlResult=Nothing
Else
Response.Write "NO"
Set xmlResult=Server.CreateObject("Microsoft.XMLDOM")
xmlResult.save(Response)
Set xmlResult=Nothing
End If
End If
%>

客户端这样写的
Dim Url As String

Url = "http://" & ServerName & "/shift/AddAttendRecord.asp"

Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim Strm As ADODB.Stream
Dim XMLHttp As XMLHTTPRequest
Dim ObjSas As InstantPassCls.clsSAS
Dim AttendArray As Variant
Dim i As Integer
Set rs = New ADODB.Recordset
Set ObjSas = New InstantPassCls.clsSAS
AttendArray = ObjSas.GetUploadRecord

If IsArray(AttendArray) Then

With rs.Fields
.Append "StaffNo", adBSTR
.Append "Time", adBSTR
.Append "AttendType", adBSTR
End With
rs.Open
With rs
For i = 0 To UBound(AttendArray, 2)
.AddNew
.Fields("StaffNO") = AttendArray(0, i)
.Fields("Time") = AttendArray(1, i)
.Fields("AttendType") = AttendArray(2, i)
.Update
Next i
End With

Set Strm = New ADODB.Stream
rs.Save Strm, adPersistXML
Set XMLHttp = New XMLHTTPRequest
XMLHttp.Open "POST", Url, False
XMLHttp.send Strm.ReadText

If Err.Number = 0 Then
UPloadData = XMLHttp.responseText
Sleep (10000)
'If Left(UPloadData, 2) = "NO" Then
If InStr(1, UPloadData, "NO") > 0 Then
UPloadData = LoadResString(5038)
WriteLog 4, "Upload data failed"
End If
'If Left(UPloadData, 2) = "OK" Then
If InStr(1, UPloadData, "OK") > 0 Then
ObjSas.MarkRecord
WriteLog 4, "Upload data success"
UPloadData = LoadResString(5037)
End If
Else
UPloadData = LoadResString(5036)
WriteLog 4, "Upload data failed"
End If

Else
UPloadData = LoadResString(5035)
End If

Set ObjSas = Nothing
Set rs = Nothing
应该能满足你的要求,用VB怎样把文本按要求组成XML包,可以按照lax(key)的方法生成

lax 2003-05-30
  • 打赏
  • 举报
回复
Server 端程序是不是一起做的? 如果不是的话,可能不那么好做,例如要求 XML 是一个附件。
如果不要求XML是附件,就可以直接把XML作为字符串发到 Web Server 的处理程序。组成XML很简单:
<boy>
<name>Jeff Roberts</name>
<birthday>
<year>1970</year>
<month>8</month>
<day>23</day>
</birthday>
</boy>
组装成象上面那样的字符串就可以了,如果 Server 端是调用的标准 XML 解析器,一定要注意组成的 XML 是否合法(可以将它存为.xml文件,然后用浏览器打开看看)。
syoki 2003-05-29
  • 打赏
  • 举报
回复
lax:非常感谢!我是个新手,您能不能在详细说说,用VB怎样把文本按要求组成XML包,调用什么类实现POST该包?谢谢!!!
lax 2003-05-29
  • 打赏
  • 举报
回复
Can use MSXML2.XMLHTTP object.
Reference: MSDN Library root -> XML Web Services -> XML -> XML Products -> MSXML -> SDK Documentation -> 4.0 or 3.0 SDK -> XML Reference
syoki 2003-05-29
  • 打赏
  • 举报
回复
谢谢!我是个新手,能不能详细说说VB的解决方案,最好原码,THANKS A LOT!!!
IMHELLFIRE 2003-05-29
  • 打赏
  • 举报
回复
WinINet

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧