Maks150988
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: function SendSoapRequest(hResourceHandle: HINTERNET; pszSoap: Utf8String): AnsiString; var dwStatus : DWORD; dwStatusSize : DWORD; dwReserved : DWORD; bRet : Boolean; dwBytesToWrite: DWORD; dwBytesRead : DWORD; pszData : Pointer; pszText : Utf8String; begin Result := ''; bRet := HttpSendRequest(hResourceHandle, nil, 0, LPCSTR(pszSoap), lstrlen(LPCSTR(pszSoap))); if bRet then begin dwStatus := 0; dwStatusSize := SizeOf(dwStatus); dwReserved := 0; bRet := HttpQueryInfo( hResourceHandle, HTTP_QUERY_FLAG_NUMBER or HTTP_QUERY_STATUS_CODE, @dwStatus, dwStatusSize, dwReserved ); if (bRet and (dwStatus = HTTP_STATUS_OK)) then begin bRet := InternetQueryDataAvailable(hResourceHandle, dwBytesToWrite, 0, 0); if (bRet and (dwBytesToWrite > 0)) then try repeat GetMem(pszData, dwBytesToWrite); if (pszData <> nil) then try bRet := InternetReadFile(hResourceHandle, pszData, dwBytesToWrite, dwBytesRead); if (bRet and (dwBytesRead > 0)) then begin pszText := Copy(LPCSTR(pszData), 0, dwBytesRead); Result := Result + Utf8ToAnsi(pszText); end; finally FreeMem(pszData, dwBytesToWrite); end; until dwBytesRead = 0; finally end; end; end; end; |
|