XML 문자열 데이터를 원격 WCF 서비스에 게시하고 결과를 추출하는 꽤 표준적인 함수가 있습니다. 그것은 잘 작동하지만, "큰"데이터의 양을 확장하는 데 실패 (이 경우 138킬로바이트)많은 양의 데이터가있는 POST 요청을 VB6에서 실행하지 못했습니다.
' performs a HTTP POST and returns the resulting message content
Function HttpPost(sUrl As String, sSOAPAction As String, sContent As String) As String
Dim oHttp As Object
'Set oHttp = CreateObject("Microsoft.XMLHTTP")
Set oHttp = CreateObject("MSXML2.XMLHTTP.6.0")
oHttp.open "POST", sUrl, False
oHttp.setRequestHeader "SOAPAction", """http://conducive.com.au/IXpacManagement/" & sSOAPAction & """"
oHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
oHttp.setRequestHeader "Content-Length", Len(sContent)
oHttp.send Str(sContent)
If oHttp.status = 200 Then
HttpPost = oHttp.responseText
Else
MsgBox "An error (" & LTrim(Str(oHttp.status)) & ") has occurred connecting to the server."
HttpPost = ""
End If
Set oHttp = Nothing
End Function
내가 error 7 out of memory
를 얻을 내가 Microsoft.XMLHTTP
를 사용하는 경우.
MSXML2.XMLHTTP.6.0
을 사용할 때 object doesn't support this property or method
이 표시됩니다.
어느 경우 든 1000 자 미만의 작은 문자열을 보내면 완벽하게 작동합니다. oHttp.send(sContent)
를 사용
- : : 심지어 작은 게시물
Invalid procedure call or argument Runtime error 5
실패
는 여기에 다른 문자열을 보내는 방법을 시도 할 때 내가 무엇을 얻을.
- 사용
oHttp.send sContent
: 작은 POST 일지라도Invalid procedure call or argument Runtime error 5
으로 실패합니다. 결국oHttp.send CStr(sContent)
에서
일했다. 내가 잃어 버렸기 때문에 제안 해 주셔서 감사합니다.
vb 태그가 정리 중이라는 사실에 주목하기 위해 댓글을 달았습니다 (커뮤니티 게시판 참조). 4 가지 특정 변형 중 하나를 사용하여 교체해야합니다. 특히 후속 조치에 대한 도움을 받으십시오! – Zulaxia
중간 바이트 배열을 사용해보십시오 :'baBuffer = StrConv (...) : .send CVar (baBuffer)' – wqw