VintaSoft Twain .NET SDK 15.0: Documentation for .NET developer
Vintasoft.WpfTwain.ImageUploading.Http Namespace / HttpUpload Class / PostData() Method
Syntax Exceptions Remarks Example Requirements SeeAlso
In This Topic
    PostData() Method (HttpUpload)
    In This Topic
    Sends data to the HTTP/HTTPS server by the POST method.
    Syntax
    'Declaration
    
    Public Function PostData() As Boolean
    
    
    public bool PostData()
    
    
    public: bool PostData()
    
    
    public:
    bool PostData()

    Return Value

    true if upload process was started successfully, false otherwise.
    Exceptions
    ExceptionDescription
    Thrown if URL is null.
    Remarks

    This method initializes asynchronous file uploading process and file will be uploaded to the server only when the Completed event will be generated or value of the StatusCode property will be set to StatusCode.Completed.

    An uploading process can be aborted with the Abort method.

    Example

    This C#/VB.NET code shows how to upload acquired image as JPEG file to HTTP server.

    
    Private _httpUpload As Vintasoft.Twain.ImageUploading.Http.HttpUpload = Nothing
    
    Private _isDataSending As Boolean = False
    
    
    ''' <summary>
    ''' Upload acquired image to HTTP server.
    ''' </summary>
    ''' <param name="acquiredImage"></param>
    Public Sub UploadAcquiredImageAsJpegToHttp(acquiredImage As Vintasoft.Twain.AcquiredImage)
            Try
                    ' create HTTP uploader
                    _httpUpload = New Vintasoft.Twain.ImageUploading.Http.HttpUpload()
    
                    ' subscribe to the events
                    AddHandler _httpUpload.StatusChanged, New System.EventHandler(Of Vintasoft.Twain.ImageUploading.Http.StatusChangedEventArgs)(AddressOf _httpUpload_StatusChanged)
                    AddHandler _httpUpload.ProgressChanged, New System.EventHandler(Of Vintasoft.Twain.ImageUploading.Http.ProgressChangedEventArgs)(AddressOf _httpUpload_ProgressChanged)
                    AddHandler _httpUpload.Completed, New System.EventHandler(Of Vintasoft.Twain.ImageUploading.Http.CompletedEventArgs)(AddressOf _httpUpload_Completed)
    
                    ' set HTTP upload parameters
                    _httpUpload.Url = "https://demos.vintasoft.com/AspNetCoreTwainScanningDemo/api/ImageUploadApi"
                    _httpUpload.AddTextField("user", "guest")
                    _httpUpload.AddTextField("password", "guest")
                    _httpUpload.AddFileField("file", "demo.jpg", acquiredImage.GetAsStream(New Vintasoft.Twain.ImageEncoders.TwainJpegEncoderSettings()))
    
                    ' post data to the server
                    _httpUpload.PostData()
            Catch ex As System.Exception
                    System.Console.WriteLine(ex.Message)
            End Try
    End Sub
    
    ''' <summary>
    ''' Status of HTTP uploading is changed.
    ''' </summary>
    Private Sub _httpUpload_StatusChanged(sender As Object, e As Vintasoft.Twain.ImageUploading.Http.StatusChangedEventArgs)
            System.Console.WriteLine(e.StatusString)
    End Sub
    
    ''' <summary>
    ''' HTTP uploading is in progress.
    ''' </summary>
    Private Sub _httpUpload_ProgressChanged(sender As Object, e As Vintasoft.Twain.ImageUploading.Http.ProgressChangedEventArgs)
            ' show the size of uploading data (once per upload)
            If Not _isDataSending Then
                    System.Console.WriteLine(String.Format("Total bytes: {0}", e.BytesTotal))
                    _isDataSending = True
            End If
    
            ' show current upload progress, in bytes, in the status string
            System.Console.WriteLine(String.Format("Bytes uploaded: {0}", e.BytesUploaded))
    End Sub
    
    ''' <summary>
    ''' HTTP uploading is completed.
    ''' </summary>
    Private Sub _httpUpload_Completed(sender As Object, e As Vintasoft.Twain.ImageUploading.Http.CompletedEventArgs)
            ' if no errors
            If e.ErrorCode = 0 Then
                    ' if server returned "OK" status
                    If e.ResponseCode = System.Net.HttpStatusCode.OK Then
                            System.Console.WriteLine(String.Format("HTTP: Image is uploaded successfully!"))
                            System.Console.WriteLine(String.Format("Response content: {0}", e.ResponseContent))
                    Else
                            ' if server returned NOT "OK" status
                            System.Console.WriteLine(String.Format("Response code: {0}", e.ResponseCode))
                            System.Console.WriteLine(String.Format("Response string: {0}", e.ResponseString))
                    End If
            Else
                    ' if error occurs
                    System.Console.WriteLine(String.Format("Error: {0}", e.ErrorString))
            End If
    End Sub
    
    
    
    Vintasoft.Twain.ImageUploading.Http.HttpUpload _httpUpload = null;
    
    bool _isDataSending = false;
    
    
    /// <summary>
    /// Upload acquired image to HTTP server.
    /// </summary>
    /// <param name="acquiredImage"></param>
    public void UploadAcquiredImageAsJpegToHttp(Vintasoft.Twain.AcquiredImage acquiredImage)
    {
        try
        {
            // create HTTP uploader
            _httpUpload = new Vintasoft.Twain.ImageUploading.Http.HttpUpload();
    
            // subscribe to the events
            _httpUpload.StatusChanged += new System.EventHandler<Vintasoft.Twain.ImageUploading.Http.StatusChangedEventArgs>(_httpUpload_StatusChanged);
            _httpUpload.ProgressChanged += new System.EventHandler<Vintasoft.Twain.ImageUploading.Http.ProgressChangedEventArgs>(_httpUpload_ProgressChanged);
            _httpUpload.Completed += new System.EventHandler<Vintasoft.Twain.ImageUploading.Http.CompletedEventArgs>(_httpUpload_Completed);
    
            // set HTTP upload parameters
            _httpUpload.Url = "https://demos.vintasoft.com/AspNetCoreTwainScanningDemo/api/ImageUploadApi";
            _httpUpload.AddTextField("user", "guest");
            _httpUpload.AddTextField("password", "guest");
            _httpUpload.AddFileField("file", "demo.jpg", acquiredImage.GetAsStream(new Vintasoft.Twain.ImageEncoders.TwainJpegEncoderSettings()));
    
            // post data to the server
            _httpUpload.PostData();
        }
        catch (System.Exception ex)
        {
            System.Console.WriteLine(ex.Message);
        }
    }
    
    /// <summary>
    /// Status of HTTP uploading is changed.
    /// </summary>
    private void _httpUpload_StatusChanged(object sender, Vintasoft.Twain.ImageUploading.Http.StatusChangedEventArgs e)
    {
        System.Console.WriteLine(e.StatusString);
    }
    
    /// <summary>
    /// HTTP uploading is in progress.
    /// </summary>
    private void _httpUpload_ProgressChanged(object sender, Vintasoft.Twain.ImageUploading.Http.ProgressChangedEventArgs e)
    {
        // show the size of uploading data (once per upload)
        if (!_isDataSending)
        {
            System.Console.WriteLine(string.Format("Total bytes: {0}", e.BytesTotal));
            _isDataSending = true;
        }
    
        // show current upload progress, in bytes, in the status string
        System.Console.WriteLine(string.Format("Bytes uploaded: {0}", e.BytesUploaded));
    }
    
    /// <summary>
    /// HTTP uploading is completed.
    /// </summary>
    private void _httpUpload_Completed(object sender, Vintasoft.Twain.ImageUploading.Http.CompletedEventArgs e)
    {
        // if no errors
        if (e.ErrorCode == 0)
        {
            // if server returned "OK" status
            if (e.ResponseCode == System.Net.HttpStatusCode.OK)
            {
                System.Console.WriteLine(string.Format("HTTP: Image is uploaded successfully!"));
                System.Console.WriteLine(string.Format("Response content: {0}", e.ResponseContent));
            }
            // if server returned NOT "OK" status
            else
            {
                System.Console.WriteLine(string.Format("Response code: {0}", e.ResponseCode));
                System.Console.WriteLine(string.Format("Response string: {0}", e.ResponseString));
            }
        }
        // if error occurs
        else
            System.Console.WriteLine(string.Format("Error: {0}", e.ErrorString));
    }
    
    

    Requirements

    Target Platforms: .NET 8, .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

    See Also