Post 我可以使用httprequest自动发布一个文件吗,就像正常上传一样?

Post 我可以使用httprequest自动发布一个文件吗,就像正常上传一样?,post,file-io,asp-classic,multipartform-data,Post,File Io,Asp Classic,Multipartform Data,我被(我认为)应该很简单的事情困住了,但我不知道怎么做。我在这里或谷歌上都找不到任何信息 我们有一个web应用程序,它从我们的站点获取数据并自动将其发布到另一个API 我们还想发送一个二进制文件——例如,我们从本地URL抓取文件,并将其内容发布到另一个站点 有人能给我指出正确的方向吗?例如,我是否需要将文件URL以某种方式嵌入到数据中,并作为多部分/表单数据发布?我创建了这些经典的ASP函数来将文件发布到另一台服务器。希望它也能帮助你 Function PostDocument(intDocum

我被(我认为)应该很简单的事情困住了,但我不知道怎么做。我在这里或谷歌上都找不到任何信息

我们有一个web应用程序,它从我们的站点获取数据并自动将其发布到另一个API

我们还想发送一个二进制文件——例如,我们从本地URL抓取文件,并将其内容发布到另一个站点


有人能给我指出正确的方向吗?例如,我是否需要将文件URL以某种方式嵌入到数据中,并作为多部分/表单数据发布?

我创建了这些经典的ASP函数来将文件发布到另一台服务器。希望它也能帮助你

Function PostDocument(intDocumentID, binFile, strFilename, strContentType)
Dim objHttp, strBoundary, strRequestStart, strRequestEnd, binPost
Dim objStream

strBoundary = "---------------------------9849436581144108930470211272"

Set objHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")

strRequestStart = "--" & strBoundary & vbCrlf &_
    "Content-Disposition: form-data; name=""id""" & vbCrlf &_
    vbCrlf &_
    intDocumentID & vbCrlf &_
    vbCrlf &_
    "--" & strBoundary & vbCrlf &_
    "Content-Disposition: form-data; name=""file""; filename=""" & strFilename & """" & vbCrlf &_
    "Content-Type: " & strContentType & vbCrlf &_
    vbCrlf

strRequestEnd = vbCrLf & "--" & strBoundary & "--"

Set objStream = Server.CreateObject("ADODB.Stream")

objStream.Type = adTypeBinary '1
objStream.Mode = adModeReadWrite '3
objStream.Open
objStream.Write StringToBinary(strRequestStart)
objStream.Write binFile
objStream.Write StringToBinary(strRequestEnd)
objStream.Position = 0

binPost = objStream.Read

Response.Write binPost

objStream.Close
Set objStream = Nothing

objHttp.Open "POST", "(url removed)", False, "(username removed)", "(password removed)"
objHttp.setRequestHeader "Content-Type", "multipart/form-data; boundary=""" & strBoundary & """"
objHttp.Send binPost

PostDocument = objHttp.ResponseText

Set objHttp = Nothing
End Function

Function StringToBinary(toConvert)
Dim objStream, data

Set objStream = Server.CreateObject("ADODB.Stream")

objStream.Charset = "ISO-8859-1"
objStream.Type = adTypeText '2
objStream.Mode = adModeReadWrite '3
objStream.Open
objStream.WriteText toConvert

objStream.Position = 0
objStream.Type = adTypeBinary '1
StringToBinary = objStream.Read

objStream.Close
Set objStream = Nothing
End Function

我创建了这些经典的ASP函数来将文件发布到另一台服务器。希望它也能帮助你

Function PostDocument(intDocumentID, binFile, strFilename, strContentType)
Dim objHttp, strBoundary, strRequestStart, strRequestEnd, binPost
Dim objStream

strBoundary = "---------------------------9849436581144108930470211272"

Set objHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")

strRequestStart = "--" & strBoundary & vbCrlf &_
    "Content-Disposition: form-data; name=""id""" & vbCrlf &_
    vbCrlf &_
    intDocumentID & vbCrlf &_
    vbCrlf &_
    "--" & strBoundary & vbCrlf &_
    "Content-Disposition: form-data; name=""file""; filename=""" & strFilename & """" & vbCrlf &_
    "Content-Type: " & strContentType & vbCrlf &_
    vbCrlf

strRequestEnd = vbCrLf & "--" & strBoundary & "--"

Set objStream = Server.CreateObject("ADODB.Stream")

objStream.Type = adTypeBinary '1
objStream.Mode = adModeReadWrite '3
objStream.Open
objStream.Write StringToBinary(strRequestStart)
objStream.Write binFile
objStream.Write StringToBinary(strRequestEnd)
objStream.Position = 0

binPost = objStream.Read

Response.Write binPost

objStream.Close
Set objStream = Nothing

objHttp.Open "POST", "(url removed)", False, "(username removed)", "(password removed)"
objHttp.setRequestHeader "Content-Type", "multipart/form-data; boundary=""" & strBoundary & """"
objHttp.Send binPost

PostDocument = objHttp.ResponseText

Set objHttp = Nothing
End Function

Function StringToBinary(toConvert)
Dim objStream, data

Set objStream = Server.CreateObject("ADODB.Stream")

objStream.Charset = "ISO-8859-1"
objStream.Type = adTypeText '2
objStream.Mode = adModeReadWrite '3
objStream.Open
objStream.WriteText toConvert

objStream.Position = 0
objStream.Type = adTypeBinary '1
StringToBinary = objStream.Read

objStream.Close
Set objStream = Nothing
End Function

谢谢你,约翰,我要试一试:)(3天后)差不多到了。。。。。我能问一下。。。strRequestStart中的两个内容处理头是怎么回事?第一个用于表单字段(intDocumentId-更改除文件外需要传递的内容),第二个用于文件本身。如果您想在同一请求中传递多个字段或文件,则需要更多。感谢您在这段时间后回复我。:)这是否意味着,如果我只是发布文件本身,我可以忽略第一个文件?我90%都能让它工作,但当我从目标下载文件时,我发布的文件似乎已损坏。你有没有可能看看这里贴的代码,告诉我是否有明显的错误?谢谢你,约翰,我要试一试:)(3天后)差不多到了。。。。。我能问一下。。。strRequestStart中的两个内容处理头是怎么回事?第一个用于表单字段(intDocumentId-更改除文件外需要传递的内容),第二个用于文件本身。如果您想在同一请求中传递多个字段或文件,则需要更多。感谢您在这段时间后回复我。:)这是否意味着,如果我只是发布文件本身,我可以忽略第一个文件?我90%都能让它工作,但当我从目标下载文件时,我发布的文件似乎已损坏。你有没有可能看看这里贴的代码,告诉我是否有明显的错误?到另一个API?您将数据发布到哪里/向谁发布?这是一个工作公告栏。我们正试图将简历/简历发布到另一个API?您将数据发布到哪里/向谁发布?这是一个工作公告栏。我们正试着在简历上发帖子