PostData() Method (HttpUpload)
In This Topic
Sends data to the HTTP/HTTPS server by the POST method.
Syntax
'Declaration
Public Function PostData() As Boolean
Return Value
true if upload process was started successfully, false otherwise.
Exceptions
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 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
See Also