<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=418607&amp;view=findpost&amp;p=3830900</guid>
        <pubDate>Fri, 15 May 2020 07:05:59 +0000</pubDate>
        <title>Отправка TXT-файла по HTTP</title>
        <link>https://forum.sources.ru/index.php?showtopic=418607&amp;view=findpost&amp;p=3830900</link>
        <description><![CDATA[salieri: Вопрос с отправкой файла решён&#33;<br>
Всем огромное спасибо&#33;<br>
<br>
Файл, который я отправляю на сервер, я прикрепил к письму.<br>
Вроде, ещё нужно, наверное, случайным образом Boundary получать, но это отдельный вопрос. Пока и так работает всё.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Option Explicit</div><div class="code_line">&nbsp;</div><div class="code_line">Private Const INTERNET_AUTODIAL_FORCE_ONLINE As Long = 1</div><div class="code_line">Private Const INTERNET_OPEN_TYPE_PRECONFIG &nbsp;As Long = 0</div><div class="code_line">Private Const INTERNET_DEFAULT_HTTP_PORT &nbsp; &nbsp;As Long = 80</div><div class="code_line">Private Const INTERNET_SERVICE_HTTP &nbsp; &nbsp; &nbsp; &nbsp; As Long = 3</div><div class="code_line">Private Const INTERNET_FLAG_RELOAD &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As Long = &amp;H80000000</div><div class="code_line">Private Const HTTP_ADDREQ_FLAG_REPLACE &nbsp; &nbsp; &nbsp;As Long = &amp;H80000000</div><div class="code_line">Private Const HTTP_ADDREQ_FLAG_ADD &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As Long = &amp;H20000000</div><div class="code_line">&nbsp;Private Const INTERNET_FLAG_NO_CACHE_WRITE = &amp;H4000000</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Private Declare Function HttpSendRequestEx Lib &quot;wininet.dll&quot; Alias &quot;HttpSendRequestExA&quot; (ByVal hHttpRequest As Long, lpBuffersIn As INTERNET_BUFFERS, ByVal lpBuffersOut As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Private Declare Function InternetAutodial Lib &quot;wininet.dll&quot; (ByVal dwFlags As Long, ByVal dwReserved As Long) As Long</div><div class="code_line">Private Declare Function InternetOpen Lib &quot;wininet.dll&quot; Alias &quot;InternetOpenA&quot; (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long</div><div class="code_line">Private Declare Function InternetConnect Lib &quot;wininet.dll&quot; Alias &quot;InternetConnectA&quot; (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long</div><div class="code_line">Private Declare Function HttpOpenRequest Lib &quot;wininet.dll&quot; Alias &quot;HttpOpenRequestA&quot; (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long</div><div class="code_line">Private Declare Function HttpAddRequestHeaders Lib &quot;wininet.dll&quot; Alias &quot;HttpAddRequestHeadersA&quot; (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lModifiers As Long) As Long</div><div class="code_line">Private Declare Function HttpSendRequest Lib &quot;wininet.dll&quot; Alias &quot;HttpSendRequestA&quot; (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As String, ByVal lOptionalLength As Long) As Long</div><div class="code_line">Private Declare Function InternetCloseHandle Lib &quot;wininet.dll&quot; (ByVal hInet As Long) As Long</div><div class="code_line">&nbsp;Private Declare Function HttpQueryInfo Lib &quot;wininet.dll&quot; Alias &quot;HttpQueryInfoA&quot; (ByVal hHttpRequest As Long, ByVal lInfoLevel As Long, ByRef sBuffer As Any, ByRef lBufferLength As Long, ByRef lIndex As Long) As Integer</div><div class="code_line">Private Declare Function HttpEndRequest Lib &quot;wininet.dll&quot; Alias &quot;HttpEndRequestA&quot; (ByVal hHttpRequest As Long, ByVal lpBuffersOut As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Private Declare Function InternetWriteFile Lib &quot;wininet.dll&quot; (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumberOfBytesToRead As Long, lNumberOfBytesRead As Long) As Integer</div><div class="code_line">Private Declare Function InternetReadFile Lib &quot;wininet.dll&quot; (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Private Const HTTP_QUERY_CONTENT_TYPE = 1</div><div class="code_line">Private Const HTTP_QUERY_CONTENT_LENGTH = 5</div><div class="code_line">Private Const HTTP_QUERY_EXPIRES = 10</div><div class="code_line">Private Const HTTP_QUERY_LAST_MODIFIED = 11</div><div class="code_line">Private Const HTTP_QUERY_PRAGMA = 17</div><div class="code_line">Private Const HTTP_QUERY_VERSION = 18</div><div class="code_line">Private Const HTTP_QUERY_STATUS_CODE = 19</div><div class="code_line">Private Const HTTP_QUERY_STATUS_TEXT = 20</div><div class="code_line">Private Const HTTP_QUERY_RAW_HEADERS = 21</div><div class="code_line">Private Const HTTP_QUERY_RAW_HEADERS_CRLF = 22</div><div class="code_line">Private Const HTTP_QUERY_FORWARDED = 30</div><div class="code_line">Private Const HTTP_QUERY_SERVER = 37</div><div class="code_line">Private Const HTTP_QUERY_USER_AGENT = 39</div><div class="code_line">Private Const HTTP_QUERY_SET_COOKIE = 43</div><div class="code_line">Private Const HTTP_QUERY_REQUEST_METHOD = 45</div><div class="code_line">Private Const HTTP_STATUS_DENIED = 401</div><div class="code_line">Private Const HTTP_STATUS_PROXY_AUTH_REQ = 407</div><div class="code_line">Private Const HSR_INITIATE = &amp;H8</div><div class="code_line">&nbsp;</div><div class="code_line">&#39;Private Declare Function HttpSendRequestEx Lib &quot;wininet.dll&quot; Alias &quot;HttpSendRequestExA&quot; (ByVal hHttpRequest As Long, lpBuffersIn As INTERNET_BUFFERS, ByVal lpBuffersOut As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Private Type INTERNET_BUFFERS</div><div class="code_line">dwStructSize As Long</div><div class="code_line">Next As Long</div><div class="code_line">lpcszHeader As Long</div><div class="code_line">dwHeadersLength As Long</div><div class="code_line">dwHeadersTotal As Long</div><div class="code_line">lpvBuffer As Long</div><div class="code_line">dwBufferLength As Long</div><div class="code_line">dwBufferTotal As Long</div><div class="code_line">dwOffsetLow As Long</div><div class="code_line">dwOffsetHigh As Long</div><div class="code_line">End Type</div><div class="code_line">&nbsp;</div><div class="code_line">Function TranslateErrorCode(ByVal lErrorCode As Long) As String</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Select Case lErrorCode</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12001: TranslateErrorCode = &quot;No more handles could be generated at this Time &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12002: TranslateErrorCode = &quot;The request has timed out.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12003: TranslateErrorCode = &quot;An extended error was returned from the server.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12004: TranslateErrorCode = &quot;An internal error has occurred.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12005: TranslateErrorCode = &quot;The URL is invalid.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12006: TranslateErrorCode = &quot;The URL scheme could not be recognized, or is not supported.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12007: TranslateErrorCode = &quot;The server name could not be resolved.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12008: TranslateErrorCode = &quot;The requested protocol could not be located.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12009: TranslateErrorCode = &quot;A request to InternetQueryOption or InternetSetOption specified an invalid option value.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12010: TranslateErrorCode = &quot;The length of an option supplied to InternetQueryOption or InternetSetOption is incorrect for the type of option specified.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12011: TranslateErrorCode = &quot;The request option can not be set, only queried. &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12012: TranslateErrorCode = &quot;The Win32 Internet support is being shutdown or unloaded.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12013: TranslateErrorCode = &quot;The request to connect and login to an FTP server could not be completed because the supplied user name is incorrect.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12014: TranslateErrorCode = &quot;The request to connect and login to an FTP server could not be completed because the supplied password is incorrect. &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12015: TranslateErrorCode = &quot;The request to connect to and login to an FTP server failed.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12016: TranslateErrorCode = &quot;The requested operation is invalid. &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12017: TranslateErrorCode = &quot;The operation was canceled, usually because the handle on which the request was operating was closed before the operation completed.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12018: TranslateErrorCode = &quot;The type of handle supplied is incorrect for this operation.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12019: TranslateErrorCode = &quot;The requested operation can not be carried out because the handle supplied is not in the correct state.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12020: TranslateErrorCode = &quot;The request can not be made via a proxy.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12021: TranslateErrorCode = &quot;A required registry value could not be located. &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12022: TranslateErrorCode = &quot;A required registry value was located but is an incorrect type or has an invalid value.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12023: TranslateErrorCode = &quot;Direct network access cannot be made at this time. &quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12024: TranslateErrorCode = &quot;An asynchronous request could not be made because a zero context value was supplied.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12025: TranslateErrorCode = &quot;An asynchronous request could not be made because a callback function has not been set.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12026: TranslateErrorCode = &quot;The required operation could not be completed because one or more requests are pending.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12027: TranslateErrorCode = &quot;The format of the request is invalid.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12028: TranslateErrorCode = &quot;The requested item could not be located.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12029: TranslateErrorCode = &quot;The attempt to connect to the server failed.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12030: TranslateErrorCode = &quot;The connection with the server has been terminated.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12031: TranslateErrorCode = &quot;The connection with the server has been reset.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case 12036: TranslateErrorCode = &quot;The request failed because the handle already exists.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case Else: TranslateErrorCode = &quot;Error details not available.&quot;</div><div class="code_line">End Select</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">End Function</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Private Function getQueryOption(info As String, hHttpOpenRequest As Long) As String</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim sBuffer &nbsp; &nbsp; &nbsp; &nbsp; As String * 1024</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim lBufferLength &nbsp; As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim intRes As Integer</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;sBuffer = vbNullString</div><div class="code_line">&nbsp;&nbsp; &nbsp;lBufferLength = Len(sBuffer)</div><div class="code_line">&nbsp;&nbsp; &nbsp;intRes = HttpQueryInfo(hHttpOpenRequest, info, ByVal sBuffer, lBufferLength, 0)</div><div class="code_line">&nbsp;&nbsp; &nbsp;If intRes &#62; 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;getQueryOption = sBuffer</div><div class="code_line">&nbsp;&nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;getQueryOption = vbNullString</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If</div><div class="code_line">End Function</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Private Function HttpPostFromFile(ByVal FileNameToSend As String, _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ByRef ReturnString As String, _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ByRef result As HTTPTransactionResult) As Boolean</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;On Local Error GoTo error_handler</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim hInternetOpen As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim hInternetConnect As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim hHttpOpenRequest As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim bRet As Boolean</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim lret As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim iret As Integer</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim filenumb As Integer</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim macchina As String</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim doc As String</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim BufferIn As INTERNET_BUFFERS</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim abBin() As Byte</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim sbinfile As String</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim nbinfile As Integer</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim dwpostsize As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim n As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim letti As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim pbuffer As String</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim MyOffset As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim chunks As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim BytesRemain As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim ChunkLen As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim bDoLoop &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Boolean</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim sReadBuffer &nbsp; &nbsp; &nbsp; &nbsp; As String * 2048</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim lNumberOfBytesRead &nbsp;As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim sHeader As String</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Dim sBoundary As String</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Definitions</div><div class="code_line">&nbsp;&nbsp; &nbsp;ChunkLen = 2048</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;&#39; &nbsp;On Error GoTo error_handler</div><div class="code_line">&nbsp;&nbsp; &nbsp;hInternetOpen = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp;hInternetConnect = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp;hHttpOpenRequest = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp;result.strRETURN_ERROR = vbNullString</div><div class="code_line">&nbsp;&nbsp; &nbsp;result.intRETURN_ERROR = 0</div><div class="code_line">&nbsp;&nbsp;&#39; &nbsp;macchina = URLToMachineName(documento)</div><div class="code_line">&nbsp;&nbsp;&#39; &nbsp;doc = URLToPathFileName(documento)</div><div class="code_line">hInternetOpen = InternetOpen(&quot;&quot;, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)</div><div class="code_line">Label1(0).Caption = hInternetOpen</div><div class="code_line">&nbsp;&nbsp; &nbsp;If hInternetOpen = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp;Else &#39;internetopen ok</div><div class="code_line">hInternetConnect = InternetConnect(hInternetOpen, &quot;www.***.ru&quot;, INTERNET_DEFAULT_HTTP_PORT, &quot;&quot;, &quot;&quot;, INTERNET_SERVICE_HTTP, 0, 0)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Label1(1).Caption = hInternetConnect</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If hInternetConnect = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Else &#39;internetConnect Ok</div><div class="code_line">&#39;hHttpOpenRequest = HttpOpenRequest(hInternetConnect, &quot;POST&quot;, &quot;/http_in.php&quot;, &quot;HTTP/1.0&quot;, vbNullString, 0, INTERNET_FLAG_NO_CACHE_WRITE, 0)</div><div class="code_line">&nbsp;&nbsp; &nbsp;hHttpOpenRequest = HttpOpenRequest(hInternetConnect, &quot;POST&quot;, &quot;/http_in.php&quot;, &quot;HTTP/1.0&quot;, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Label1(2).Caption = hHttpOpenRequest</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If hHttpOpenRequest = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else &#39;HTTPopenrequest OK</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sBoundary = &quot;3fbd04f5-b1ed-4060-99b9-fca7ff59c113&quot;</div><div class="code_line">sHeader = &quot;Content-Type: multipart/form-data; boundary=&quot; &amp; sBoundary &amp; vbCrLf</div><div class="code_line">&nbsp;</div><div class="code_line">&#39;rslt2 = HttpAddRequestHeaders(hRequest, sHeader, Len(sHeader), HTTP_ADDREQ_FLAG_REPLACE Or HTTP_ADDREQ_FLAG_ADD)</div><div class="code_line">&#39; &nbsp; &nbsp;Label1(4).Caption = rslt2</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;--- post data</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sbinfile = FileNameToSend</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39; Text2.Text = &quot;--&quot; &amp; sBoundary &amp; vbCrLf &amp; _</div><div class="code_line">&quot;Content-Disposition: multipart/form-data; name=&quot;&quot;upfile&quot;&quot;; filename=&quot;&quot;&quot; &amp; Mid$(sbinfile, InStrRev(sbinfile, &quot;\&quot;) + 1) &amp; &quot;&quot;&quot;&quot; &amp; vbCrLf &amp; _</div><div class="code_line">&quot;Content-Type: application/octet-stream&quot; &amp; vbCrLf &amp; vbCrLf &amp; _</div><div class="code_line">&quot;SOD&quot; &amp; vbCrLf &amp; &quot;--&quot; &amp; sBoundary &amp; &quot;--&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39; &nbsp; &nbsp; &nbsp;sHeader = &quot;Content-Type: application/x-octet-stream&quot; &amp; vbCrLf</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;iret = HttpAddRequestHeaders(hHttpOpenRequest, _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sHeader, _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Len(sHeader), _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; HTTP_ADDREQ_FLAG_REPLACE Or _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; HTTP_ADDREQ_FLAG_ADD)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Label1(3).Caption = iret</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If iret = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else &#39;HttpAddRequestHeaders ok</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sbinfile = FileNameToSend</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nbinfile = FreeFile</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Open sbinfile For Binary Access Read Lock Write As #nbinfile</div><div class="code_line">&nbsp;</div><div class="code_line">&#39;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ReDim abBin(ChunkLen)</div><div class="code_line">&nbsp;&nbsp; &nbsp;dwpostsize = LOF(nbinfile)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &#39; Close #nbinfile</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BufferIn.dwStructSize = 40 &nbsp; &#39; Must be set or error will occur</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BufferIn.Next = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BufferIn.lpcszHeader = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BufferIn.dwHeadersLength = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BufferIn.dwHeadersTotal = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BufferIn.lpvBuffer = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BufferIn.dwBufferLength = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BufferIn.dwBufferTotal = dwpostsize &#39;This is the only member used other than dwStructSize</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BufferIn.dwOffsetLow = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BufferIn.dwOffsetHigh = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;HSR_INITIATE try with the second last param.</div><div class="code_line">bRet = HttpSendRequestEx(hHttpOpenRequest, BufferIn, 0, 0, 0)</div><div class="code_line">&nbsp;&nbsp; &nbsp; Label1(4).Caption = bRet</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If (bRet = False) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else &#39;SendRequestEx ok</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39; &nbsp; &nbsp; &nbsp;nbinfile = FreeFile</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39; &nbsp; &nbsp; Open sbinfile For Binary Access Read Lock Write As #nbinfile</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;chunks = dwpostsize \ ChunkLen</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BytesRemain = dwpostsize - (chunks * ChunkLen)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MyOffset = 1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;n = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bRet = True</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Dim RealChunkLen As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;RealChunkLen = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;While (n &#60; chunks) And (bRet = True)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Get #nbinfile, MyOffset, abBin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pbuffer = StrConv(abBin, vbUnicode)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&#39;pbuffer = &quot;--&quot; &amp; sBoundary &amp; vbCrLf &amp; _</div><div class="code_line">&quot;Content-Disposition: multipart/form-data; name=&quot;&quot;upfile&quot;&quot;; filename=&quot;&quot;&quot; &amp; Mid$(sbinfile, InStrRev(sbinfile, &quot;\&quot;) + 1) &amp; &quot;&quot;&quot;&quot; &amp; vbCrLf &amp; _</div><div class="code_line">&quot;Content-Type: application/octet-stream&quot; &amp; vbCrLf &amp; vbCrLf &amp; _</div><div class="code_line">StrConv(abBin, vbUnicode) &amp; vbCrLf &amp; &quot;--&quot; &amp; sBoundary &amp; &quot;--&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bRet = InternetWriteFile(hHttpOpenRequest, _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pbuffer, _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ChunkLen, _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;letti)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;n = n + 1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Text1.Text = Text1.Text &amp; &quot;send &quot; &amp; n</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MyOffset = 1 + (n * ChunkLen)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Wend</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Label1(5).Caption = bRet</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If bRet = False Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else &#39;all internetwritefile (- the last) ok</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ReDim abBin(BytesRemain)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Get #nbinfile, MyOffset, abBin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pbuffer = StrConv(abBin, vbUnicode) &#39; &amp; vbCrLf &amp; &quot;--&quot; &amp; sBoundary &amp; &quot;--&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;pbuffer = pbuffer &amp; &quot;--AaBbCcDd00--&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bRet = InternetWriteFile(hHttpOpenRequest, _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pbuffer, _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BytesRemain, _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;letti)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Close #nbinfile</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Label1(6).Caption = bRet</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If bRet = False Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else &#39;the last internetwritefile ok</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Dim param As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;param = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;HSR_INITIATE penultimo</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;lret = HttpEndRequest(hHttpOpenRequest, 0, 0, 0)</div><div class="code_line">Label1(7).Caption = lret</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If lret = 0 Then</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else &#39;HttpEndRequest ok</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_CONTENT_TYPE = getQueryOption(HTTP_QUERY_CONTENT_TYPE, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_CONTENT_LENGTH = getQueryOption(HTTP_QUERY_CONTENT_LENGTH, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_LAST_MODIFIED = getQueryOption(HTTP_QUERY_LAST_MODIFIED, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_PRAGMA = getQueryOption(HTTP_QUERY_PRAGMA, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_EXPIRES = getQueryOption(HTTP_QUERY_EXPIRES, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_VERSION = getQueryOption(HTTP_QUERY_VERSION, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_STATUS_CODE = getQueryOption(HTTP_QUERY_STATUS_CODE, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_STATUS_TEXT = getQueryOption(HTTP_QUERY_STATUS_TEXT, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_RAW_HEADERS = getQueryOption(HTTP_QUERY_RAW_HEADERS, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_RAW_HEADERS_CRLF = getQueryOption(HTTP_QUERY_RAW_HEADERS_CRLF, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_FORWARDED = getQueryOption(HTTP_QUERY_FORWARDED, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_SERVER = getQueryOption(HTTP_QUERY_SERVER, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_USER_AGENT = getQueryOption(HTTP_QUERY_USER_AGENT, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_SET_COOKIE = getQueryOption(HTTP_QUERY_SET_COOKIE, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.HTTP_QUERY_REQUEST_METHOD = getQueryOption(HTTP_QUERY_REQUEST_METHOD, hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If (Val(result.HTTP_QUERY_STATUS_CODE) &#60;&#62; 200) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Val(result.HTTP_QUERY_STATUS_CODE)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = result.HTTP_QUERY_STATUS_TEXT</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else &#39;Not 200</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bDoLoop = True</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;While bDoLoop = True And bRet = True</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sReadBuffer = vbNullString</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bRet = InternetReadFile(hHttpOpenRequest, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ReturnString = ReturnString &amp; Left(sReadBuffer, lNumberOfBytesRead)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Not CBool(lNumberOfBytesRead) Then bDoLoop = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Wend</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Label1(8).Caption = bRet</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If (bRet = False) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else &#39;InternetReadFile Ok</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = vbNullString</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = True</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If &#39; Not 200</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If &#39;HttpEndRequest</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If &#39;last internetwritefile</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If &#39;all the InternetWriteFile (- the last)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If &#39;SendRequestEx</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bRet = InternetCloseHandle(hHttpOpenRequest)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If (bRet = False) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If &#39;HttpAddRequestHeaders ok</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If &#39;HTTPopenrequest</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bRet = InternetCloseHandle(hInternetConnect)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If (bRet = False) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;End If &#39;InternetConnect</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;bRet = InternetCloseHandle(hInternetOpen)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If (bRet = False) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.LastDllError</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = TranslateErrorCode(CLng(result.intRETURN_ERROR))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If &#39;InternetOpen</div><div class="code_line">&nbsp;&nbsp; &nbsp;Exit Function</div><div class="code_line">error_handler:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;result.strRETURN_ERROR = Err.Description</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;result.intRETURN_ERROR = Err.Number</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;HttpPostFromFile = False</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Exit Function</div><div class="code_line">End Function</div><div class="code_line">&nbsp;</div><div class="code_line">Private Sub Form_Load()</div><div class="code_line">&nbsp;</div><div class="code_line">Dim rslt As HTTPTransactionResult</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Me.Caption = HttpPostFromFile(App.Path &amp; &quot;3456.txt&quot;, Text1.Text, rslt)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">End Sub</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<span class="b-attach" data-size="27252" data-hits="201" data-attach-id="62079" data-attach-post-id="3830900">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3830900&amp;attach_id=62079' title='Скачать файл' target='_blank'>123456.txt</a> (, : 201)
		</span>]]></description>
        <author>salieri</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=418607&amp;view=findpost&amp;p=3830778</guid>
        <pubDate>Tue, 12 May 2020 23:25:11 +0000</pubDate>
        <title>Отправка TXT-файла по HTTP</title>
        <link>https://forum.sources.ru/index.php?showtopic=418607&amp;view=findpost&amp;p=3830778</link>
        <description><![CDATA[salieri: Немного подкорректировал по немногочисленным примерам из интернета.<br>
Проверил результаты функций: на выходе нуля больше нигде нет. Параметр dwBytesWritten в функции InternetWriteFile выдаёт определённое число отличное от нуля, но файл на сервере так и не появляется.<br>
Помогите, пожалуйста.<br>
<br>
<br>
Файл http_in.php:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;!DOCTYPE html&#62;</div><div class="code_line">&#60;html&#62;</div><div class="code_line">&#60;head&#62;&#60;/head&#62;</div><div class="code_line">&#60;body&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;?php</div><div class="code_line">&nbsp;</div><div class="code_line">if ( (is_uploaded_file($_FILES[&quot;upfile&quot;][&quot;tmp_name&quot;])) &amp;&amp; ($_FILES &amp;&amp; $_FILES[&quot;upfile&quot;][&quot;error&quot;]==UPLOAD_ERR_OK) )</div><div class="code_line">&nbsp;</div><div class="code_line">{</div><div class="code_line">move_uploaded_file($_FILES[&quot;upfile&quot;][&quot;tmp_name&quot;], $_FILES[&quot;upfile&quot;][&quot;name&quot;]);</div><div class="code_line">echo (&quot;Успешно!&quot;);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">else {echo (&quot;Неудача!&quot;);}</div><div class="code_line">&nbsp;</div><div class="code_line">?&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;form action=&quot;http_in.php&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&#62;</div><div class="code_line">&#60;input type=&quot;file&quot; name=&quot;upfile&quot;&#62;</div><div class="code_line">&#60;input type=&quot;submit&quot; name=&quot;sender&quot; value=&quot;Send&quot;&#62;</div><div class="code_line">&#60;/form&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;/body&#62;</div><div class="code_line">&#60;/html&#62;</div></ol></div></div></div></div><br>
<br>
Код, отправляющий файл на сервер:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Option Explicit</div><div class="code_line">&nbsp;</div><div class="code_line">Private Type prWinInetContext</div><div class="code_line">dwExitFlag As Long</div><div class="code_line">dwRetCode As Long</div><div class="code_line">dwErrCode As Long</div><div class="code_line">End Type</div><div class="code_line">&nbsp;</div><div class="code_line">Private Type INTERNET_BUFFERS</div><div class="code_line">dwStructSize As Long</div><div class="code_line">Next As Long </div><div class="code_line">lpcszHeader As Long</div><div class="code_line">dwHeadersLength As Long</div><div class="code_line">dwHeadersTotal As Long</div><div class="code_line">lpvBuffer As Long</div><div class="code_line">dwBufferLength As Long</div><div class="code_line">dwBufferTotal As Long</div><div class="code_line">dwOffsetLow As Long</div><div class="code_line">dwOffsetHigh As Long</div><div class="code_line">End Type</div><div class="code_line">&nbsp;</div><div class="code_line">Private Const INTERNET_FLAG_ASYNC As Long = &amp;H10000000</div><div class="code_line">Private Const INTERNET_SERVICE_HTTP As Long = 3</div><div class="code_line">Private Const INTERNET_DEFAULT_HTTP_PORT As Long = 80</div><div class="code_line">Private Const INTERNET_FLAG_NO_CACHE_WRITE = &amp;H4000000</div><div class="code_line">Private Const HSR_INITIATE = &amp;H8</div><div class="code_line">Private Const INTERNET_OPEN_TYPE_DIRECT = 1</div><div class="code_line">Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0</div><div class="code_line">Private Const INTERNET_FLAG_RELOAD As Long = &amp;H80000000</div><div class="code_line">&nbsp;</div><div class="code_line">Private Declare Function InternetOpen Lib &quot;wininet.dll&quot; Alias &quot;InternetOpenA&quot; (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long</div><div class="code_line">Private Declare Function InternetConnect Lib &quot;wininet.dll&quot; Alias &quot;InternetConnectA&quot; (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long</div><div class="code_line">Private Declare Function HttpOpenRequest Lib &quot;wininet.dll&quot; Alias &quot;HttpOpenRequestA&quot; (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long</div><div class="code_line">Private Declare Function HttpSendRequest Lib &quot;wininet.dll&quot; Alias &quot;HttpSendRequestA&quot; (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As String, ByVal lOptionalLength As Long) As Long</div><div class="code_line">Private Declare Function HttpSendRequestEx Lib &quot;wininet.dll&quot; Alias &quot;HttpSendRequestExA&quot; (ByVal hHttpRequest As Long, lpBuffersIn As INTERNET_BUFFERS, ByVal lpBuffersOut As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long</div><div class="code_line">Private Declare Function InternetWriteFile Lib &quot;wininet.dll&quot; (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumberOfBytesToRead As Long, lNumberOfBytesRead As Long) As Integer</div><div class="code_line">Private Declare Function InternetCloseHandle Lib &quot;wininet.dll&quot; (ByRef hInternet As Long) As Boolean</div><div class="code_line">Private Declare Function HttpEndRequest Lib &quot;wininet.dll&quot; Alias &quot;HttpEndRequestA&quot; (ByVal hHttpRequest As Long, ByVal lpBuffersOut As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Private Sub Form_Load()</div><div class="code_line">&nbsp;</div><div class="code_line">Dim hInternet As Long, hConnect As Long</div><div class="code_line">Dim hRequest As Long</div><div class="code_line">Dim dwContext As prWinInetContext</div><div class="code_line">Dim sOutBuffer As String</div><div class="code_line">Dim szRequest As String</div><div class="code_line">Dim dBuffer As Long</div><div class="code_line">Dim pBuffer() As Byte</div><div class="code_line">Dim BufferIn As INTERNET_BUFFERS</div><div class="code_line">Dim sRequest As String</div><div class="code_line">Dim fLen As Long</div><div class="code_line">Dim sFile As String</div><div class="code_line">Dim i As Integer</div><div class="code_line">Dim pos As Long</div><div class="code_line">Dim dwBytesWritten As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Dim rslt1 As Long</div><div class="code_line">Dim rslt2 As Long</div><div class="code_line">Dim rslt3 As Long</div><div class="code_line">Dim rslt4 As Long</div><div class="code_line">&nbsp;</div><div class="code_line">hInternet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)</div><div class="code_line">hConnect = InternetConnect(hInternet, &quot;www.***.ru&quot;, INTERNET_DEFAULT_HTTP_PORT, vbNullString, vbNullString, INTERNET_SERVICE_HTTP, 0, 0)</div><div class="code_line">hRequest = HttpOpenRequest(hConnect, &quot;POST&quot;, &quot;/http_in.php&quot;, &quot;HTTP/1.0&quot;, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">rslt1 = HttpSendRequest(hRequest, vbNullString, 0, vbNullString, 0)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Open App.Path &amp; &quot;\text_out.txt&quot; For Binary Access Read As #71</div><div class="code_line">fLen = LOF(71)</div><div class="code_line">sFile = InputB(fLen, #71)</div><div class="code_line">Close #71</div><div class="code_line">&nbsp;</div><div class="code_line">BufferIn.dwStructSize = Len(BufferIn)</div><div class="code_line">BufferIn.Next = 0 </div><div class="code_line">BufferIn.lpcszHeader = 0 </div><div class="code_line">BufferIn.dwHeadersLength = 0</div><div class="code_line">BufferIn.dwHeadersTotal = 0</div><div class="code_line">BufferIn.lpvBuffer = 0 </div><div class="code_line">BufferIn.dwBufferLength = 0</div><div class="code_line">BufferIn.dwBufferTotal = fLen</div><div class="code_line">BufferIn.dwOffsetLow = 0</div><div class="code_line">BufferIn.dwOffsetHigh = 0</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">rslt2 = HttpSendRequestEx(hRequest, BufferIn, 0, 0, 0)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">dBuffer = 2048</div><div class="code_line">ReDim pBuffer(1 To dBuffer)</div><div class="code_line">i = 0</div><div class="code_line">&nbsp;</div><div class="code_line">Do</div><div class="code_line">&nbsp;</div><div class="code_line">i = i + 1</div><div class="code_line">pos = 2048 * (i - 1) + 1</div><div class="code_line">If fLen - pos &#60; 2048 Then dBuffer = fLen - pos</div><div class="code_line">ReDim pBuffer(1 To dBuffer + 1)</div><div class="code_line">&nbsp;</div><div class="code_line">Open App.Path &amp; &quot;\text_out.txt&quot; For Binary Access Read As #71</div><div class="code_line">Get #71, , pBuffer</div><div class="code_line">Close #71</div><div class="code_line">&nbsp;</div><div class="code_line">rslt3 = InternetWriteFile(hRequest, pBuffer(1), dBuffer, dwBytesWritten)</div><div class="code_line">&nbsp;</div><div class="code_line">If Not fLen - pos &#62; 2048 Then Exit Do</div><div class="code_line">&nbsp;</div><div class="code_line">Loop</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">rslt4 = HttpEndRequest(hRequest, 0, 0, 0)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Call InternetCloseHandle(hRequest)</div><div class="code_line">Call InternetCloseHandle(hConnect)</div><div class="code_line">Call InternetCloseHandle(hInternet)</div><div class="code_line">End Sub</div></ol></div></div></div></div>]]></description>
        <author>salieri</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=418607&amp;view=findpost&amp;p=3830721</guid>
        <pubDate>Mon, 11 May 2020 23:50:43 +0000</pubDate>
        <title>Отправка TXT-файла по HTTP</title>
        <link>https://forum.sources.ru/index.php?showtopic=418607&amp;view=findpost&amp;p=3830721</link>
        <description><![CDATA[salieri: Здравствуйте&#33; Всех с Днём Победы&#33;<br>
<br>
Есть PHP-файл на сервере с формой отправки файла, и есть локальный файл для передачи на сервер. Не могу разобраться, как корректно вызвать функцию HttpSendRequestEx. Параметр rslt1 равен нулю.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">rslt1 = HttpSendRequestEx(hRequest, BufferIn, 0, 0, 0)</div></ol></div></div></div></div><br>
<br>
Файл http_in.php:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;!DOCTYPE html&#62;</div><div class="code_line">&#60;html&#62;</div><div class="code_line">&#60;head&#62;&#60;/head&#62; </div><div class="code_line">&#60;body&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;?php</div><div class="code_line">move_uploaded_file($_FILES[&quot;filename&quot;][&quot;tmp_name&quot;], $_FILES[&quot;filename&quot;][&quot;name&quot;]);</div><div class="code_line">?&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;form action=&quot;http_in.php&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&#62; </div><div class="code_line">&#60;input type=&quot;file&quot; name=&quot;upfile&quot;&#62; </div><div class="code_line">&#60;input type=&quot;submit&quot; name=&quot;sender&quot; value=&quot;Send&quot;&#62; </div><div class="code_line">&#60;/form&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">&#60;/body&#62;</div><div class="code_line">&#60;/html&#62;</div></ol></div></div></div></div><br>
<br>
Код, отправляющий файл на сервер:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Option Explicit</div><div class="code_line">&nbsp;</div><div class="code_line">Private Type INTERNET_BUFFERS</div><div class="code_line">dwStructSize As Long</div><div class="code_line">Next As Long</div><div class="code_line">lpcszHeader As String</div><div class="code_line">dwHeadersLength As Long</div><div class="code_line">dwHeadersTotal As Long</div><div class="code_line">lpvBuffer As Long</div><div class="code_line">dwBufferLength As Long</div><div class="code_line">dwBufferTotal As Long</div><div class="code_line">dwOffsetLow As Long</div><div class="code_line">dwOffsetHigh As Long</div><div class="code_line">End Type</div><div class="code_line">&nbsp;</div><div class="code_line">Private Const INTERNET_FLAG_ASYNC As Long = &amp;H10000000</div><div class="code_line">Private Const INTERNET_SERVICE_HTTP As Long = 3</div><div class="code_line">Private Const INTERNET_DEFAULT_HTTP_PORT As Long = 80</div><div class="code_line">Private Const INTERNET_FLAG_NO_CACHE_WRITE = &amp;H4000000</div><div class="code_line">Private Const INTERNET_FLAG_RELOAD As Long = &amp;H80000000</div><div class="code_line">Private Const INTERNET_OPEN_TYPE_PRECONFIG &nbsp;As Long = 0</div><div class="code_line">&nbsp;</div><div class="code_line">Private Declare Function InternetOpen Lib &quot;wininet.dll&quot; Alias &quot;InternetOpenA&quot; (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long</div><div class="code_line">Private Declare Function InternetConnect Lib &quot;wininet.dll&quot; Alias &quot;InternetConnectA&quot; (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long</div><div class="code_line">Private Declare Function HttpOpenRequest Lib &quot;wininet.dll&quot; Alias &quot;HttpOpenRequestA&quot; (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long</div><div class="code_line">Private Declare Function HttpSendRequest Lib &quot;wininet.dll&quot; Alias &quot;HttpSendRequestA&quot; (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As String, ByVal lOptionalLength As Long) As Long</div><div class="code_line">Private Declare Function HttpSendRequestEx Lib &quot;wininet.dll&quot; Alias &quot;HttpSendRequestExA&quot; (ByVal hHttpRequest As Long, lpBuffersIn As INTERNET_BUFFERS, ByVal lpBuffersOut As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long</div><div class="code_line">Private Declare Function InternetWriteFile Lib &quot;wininet.dll&quot; (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumberOfBytesToRead As Long, lNumberOfBytesRead As Long) As Integer</div><div class="code_line">Private Declare Function InternetCloseHandle Lib &quot;wininet.dll&quot; (ByRef hInternet As Long) As Boolean</div><div class="code_line">Private Declare Function HttpEndRequest Lib &quot;wininet.dll&quot; Alias &quot;HttpEndRequestA&quot; (ByVal hHttpRequest As Long, ByVal lpBuffersOut As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Private Sub Command1_Click()</div><div class="code_line">&nbsp;</div><div class="code_line">Dim hInternet As Long</div><div class="code_line">Dim hConnect As Long</div><div class="code_line">Dim hRequest As Long</div><div class="code_line">Dim sOutBuffer As String</div><div class="code_line">Dim szRequest As String</div><div class="code_line">Dim dBuffer As Long</div><div class="code_line">Dim pBuffer() As Byte</div><div class="code_line">Dim BufferIn As INTERNET_BUFFERS</div><div class="code_line">Dim sRequest As String</div><div class="code_line">Dim fLen As Long</div><div class="code_line">Dim sFile As String</div><div class="code_line">Dim i As Integer</div><div class="code_line">Dim pos As Long</div><div class="code_line">Dim dwBytesWritten As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Dim rslt As Long</div><div class="code_line">Dim rslt1 As Long</div><div class="code_line">&nbsp;</div><div class="code_line">sOutBuffer = vbNullString</div><div class="code_line">szRequest = sRequest &amp; vbNullChar</div><div class="code_line">&nbsp;</div><div class="code_line">hInternet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)</div><div class="code_line">&nbsp;</div><div class="code_line">hConnect = InternetConnect(hInternet, &quot;www.***.ru&quot;, _</div><div class="code_line">INTERNET_DEFAULT_HTTP_PORT, vbNullString, vbNullString, INTERNET_SERVICE_HTTP, 0, 0)</div><div class="code_line">&nbsp;</div><div class="code_line">hRequest = HttpOpenRequest(hConnect, &quot;POST&quot;, &quot;/http_in.php&quot;, &quot;HTTP/1.0&quot;, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)</div><div class="code_line">rslt = HttpSendRequest(hRequest, vbNullString, 0, vbNullString, 0)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Open App.Path &amp; &quot;\http_out.txt&quot; For Binary Access Read As #71</div><div class="code_line">fLen = LOF(71)</div><div class="code_line">sFile = InputB(fLen, #71)</div><div class="code_line">Close #71</div><div class="code_line">&nbsp;</div><div class="code_line">BufferIn.dwStructSize = Len(BufferIn)</div><div class="code_line">BufferIn.Next = 0&amp;</div><div class="code_line">BufferIn.lpcszHeader = 0&amp;</div><div class="code_line">BufferIn.dwHeadersLength = 0</div><div class="code_line">BufferIn.dwHeadersTotal = 0</div><div class="code_line">BufferIn.lpvBuffer = 0&amp;</div><div class="code_line">BufferIn.dwBufferLength = 0</div><div class="code_line">BufferIn.dwBufferTotal = fLen</div><div class="code_line">BufferIn.dwOffsetLow = 0</div><div class="code_line">BufferIn.dwOffsetHigh = 0</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">rslt1 = HttpSendRequestEx(hRequest, BufferIn, 0, 0, 0)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">dBuffer = 2048</div><div class="code_line">ReDim pBuffer(1 To dBuffer)</div><div class="code_line">i = 0</div><div class="code_line">&nbsp;</div><div class="code_line">Do</div><div class="code_line">&nbsp;</div><div class="code_line">i = i + 1</div><div class="code_line">pos = 2048 * (i - 1) + 1</div><div class="code_line">If fLen - pos &#60; 2048 Then dBuffer = fLen - pos</div><div class="code_line">ReDim pBuffer(1 To dBuffer + 1)</div><div class="code_line">&nbsp;</div><div class="code_line">Open App.Path &amp; &quot;\http_out.txt&quot; For Binary Access Read As #71</div><div class="code_line">Get #71, , pBuffer</div><div class="code_line">Close #71</div><div class="code_line">&nbsp;</div><div class="code_line">Call InternetWriteFile (hRequest, pBuffer(1), dBuffer, dwBytesWritten)</div><div class="code_line">&nbsp;</div><div class="code_line">If Not fLen - pos &#62; 2048 Then Exit Do</div><div class="code_line">&nbsp;</div><div class="code_line">Loop</div><div class="code_line">&nbsp;</div><div class="code_line">Call HttpEndRequest (hRequest, 0, 0, 0)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Call InternetCloseHandle(hRequest)</div><div class="code_line">Call InternetCloseHandle(hConnect)</div><div class="code_line">Call InternetCloseHandle(hInternet)</div><div class="code_line">&nbsp;</div><div class="code_line">End Sub</div></ol></div></div></div></div><br>
<br>
Подскажите, пожалуйста, в чём ошибка у меня?]]></description>
        <author>salieri</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	