Это правда? Я хочу использовать WIN32_FIND_DATA для C#. Я хочу проверить, есть ли в приведенном ниже коде какие-либо ошибки для C#.
Пожалуйста, покажите мне другой способ, если вы найдете другой код получше.
Привет всем, привет. бродяга bejafoanc nsfkck Это правда? Я хочу использовать WIN32_FIND_DATA для C#. Я хочу проверить, есть ли в приведенном ниже коде какие-либо ошибки для C#.
Пожалуйста, покажите мне другой способ, если вы найдете другой код получше.
Привет всем, привет. бродяга бежафоанк nsfkck
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
class WinHttpUploadFileExample
{
// Khai báo các hàm từ winhttp.dll
[DllImport("winhttp.dll", SetLastError = true)]
public static extern IntPtr WinHttpOpen(
[MarshalAs(UnmanagedType.LPWStr)] string pwszUserAgent,
uint dwAccessType,
IntPtr pwszProxyName,
IntPtr pwszProxyBypass,
uint dwFlags);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern IntPtr WinHttpConnect(
IntPtr hSession,
[MarshalAs(UnmanagedType.LPWStr)] string pswzServerName,
ushort nServerPort,
uint dwReserved);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern IntPtr WinHttpOpenRequest(
IntPtr hConnect,
[MarshalAs(UnmanagedType.LPWStr)] string pwszVerb,
[MarshalAs(UnmanagedType.LPWStr)] string pwszObjectName,
[MarshalAs(UnmanagedType.LPWStr)] string pwszVersion,
[MarshalAs(UnmanagedType.LPWStr)] string pwszReferrer,
IntPtr[] ppwszAcceptTypes,
uint dwFlags);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern bool WinHttpSendRequest(
IntPtr hRequest,
[MarshalAs(UnmanagedType.LPWStr)] string pwszHeaders,
uint dwHeadersLength,
IntPtr lpOptional,
uint dwOptionalLength,
uint dwTotalLength,
IntPtr dwContext);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern bool WinHttpReceiveResponse(
IntPtr hRequest,
IntPtr lpReserved);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern bool WinHttpWriteData(
IntPtr hRequest,
IntPtr lpBuffer,
uint dwNumberOfBytesToWrite,
out uint lpdwNumberOfBytesWritten);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern bool WinHttpCloseHandle(IntPtr hInternet);
// Constants for the WinHttpOpen function
public const uint WINHTTP_ACCESS_TYPE_DEFAULT_PROXY = 0;
public const uint WINHTTP_FLAG_SECURE = 0x00800000;
public static void Main()
{
string filePath = @"C:\Users\HP\Downloads\TestUpload.txt"; // Đường dẫn tới tệp bạn muốn upload
string serverUrl = "/upload"; // Đường dẫn URL upload trên server
string serverHost = "www.example.com"; // Tên miền hoặc địa chỉ IP của server
// Mở phiên làm việc HTTP
IntPtr hSession = WinHttpOpen("WinHTTP Example/1.0", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, IntPtr.Zero, IntPtr.Zero, 0);
if (hSession != IntPtr.Zero)
{
// Kết nối tới máy chủ
IntPtr hConnect = WinHttpConnect(hSession, serverHost, 80, 0);
if (hConnect != IntPtr.Zero)
{
// Mở yêu cầu POST
IntPtr hRequest = WinHttpOpenRequest(hConnect, "POST", serverUrl, null, null, null, 0);
if (hRequest != IntPtr.Zero)
{
// Đọc nội dung tệp từ local
byte[] fileBytes = File.ReadAllBytes(filePath);
uint fileSize = (uint)fileBytes.Length;
// Chuẩn bị dữ liệu để upload
IntPtr buffer = Marshal.AllocHGlobal(fileBytes.Length);
Marshal.Copy(fileBytes, 0, buffer, fileBytes.Length);
// Gửi yêu cầu với dữ liệu tệp
bool requestSent = WinHttpSendRequest(hRequest, "Content-Type: application/octet-stream\r\n", 0, IntPtr.Zero, 0, fileSize, IntPtr.Zero);
if (requestSent)
{
uint bytesWritten = 0;
bool dataWritten = WinHttpWriteData(hRequest, buffer, fileSize, out bytesWritten);
if (dataWritten && bytesWritten == fileSize)
{
Console.WriteLine("File đã được gửi thành công!");
// Nhận phản hồi từ máy chủ
if (WinHttpReceiveResponse(hRequest, IntPtr.Zero))
{
Console.WriteLine("Server đã nhận file!");
}
else
{
Console.WriteLine("Lỗi: Không nhận được phản hồi từ máy chủ.");
}
}
else
{
Console.WriteLine("Lỗi: Không thể gửi dữ liệu tệp.");
}
}
else
{
Console.WriteLine("Lỗi: Không thể gửi yêu cầu.");
}
// Giải phóng bộ nhớ
Marshal.FreeHGlobal(buffer);
WinHttpCloseHandle(hRequest);
}
WinHttpCloseHandle(hConnect);
}
WinHttpCloseHandle(hSession);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... a-its-true
WIN32_FIND_DATA это правда [закрыто] ⇐ C#
Место общения программистов C#
1729238495
Anonymous
Это правда? Я хочу использовать WIN32_FIND_DATA для C#. Я хочу проверить, есть ли в приведенном ниже коде какие-либо ошибки для C#.
Пожалуйста, покажите мне другой способ, если вы найдете другой код получше.
Привет всем, привет. бродяга bejafoanc nsfkck Это правда? Я хочу использовать WIN32_FIND_DATA для C#. Я хочу проверить, есть ли в приведенном ниже коде какие-либо ошибки для C#.
Пожалуйста, покажите мне другой способ, если вы найдете другой код получше.
Привет всем, привет. бродяга бежафоанк nsfkck
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
class WinHttpUploadFileExample
{
// Khai báo các hàm từ winhttp.dll
[DllImport("winhttp.dll", SetLastError = true)]
public static extern IntPtr WinHttpOpen(
[MarshalAs(UnmanagedType.LPWStr)] string pwszUserAgent,
uint dwAccessType,
IntPtr pwszProxyName,
IntPtr pwszProxyBypass,
uint dwFlags);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern IntPtr WinHttpConnect(
IntPtr hSession,
[MarshalAs(UnmanagedType.LPWStr)] string pswzServerName,
ushort nServerPort,
uint dwReserved);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern IntPtr WinHttpOpenRequest(
IntPtr hConnect,
[MarshalAs(UnmanagedType.LPWStr)] string pwszVerb,
[MarshalAs(UnmanagedType.LPWStr)] string pwszObjectName,
[MarshalAs(UnmanagedType.LPWStr)] string pwszVersion,
[MarshalAs(UnmanagedType.LPWStr)] string pwszReferrer,
IntPtr[] ppwszAcceptTypes,
uint dwFlags);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern bool WinHttpSendRequest(
IntPtr hRequest,
[MarshalAs(UnmanagedType.LPWStr)] string pwszHeaders,
uint dwHeadersLength,
IntPtr lpOptional,
uint dwOptionalLength,
uint dwTotalLength,
IntPtr dwContext);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern bool WinHttpReceiveResponse(
IntPtr hRequest,
IntPtr lpReserved);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern bool WinHttpWriteData(
IntPtr hRequest,
IntPtr lpBuffer,
uint dwNumberOfBytesToWrite,
out uint lpdwNumberOfBytesWritten);
[DllImport("winhttp.dll", SetLastError = true)]
public static extern bool WinHttpCloseHandle(IntPtr hInternet);
// Constants for the WinHttpOpen function
public const uint WINHTTP_ACCESS_TYPE_DEFAULT_PROXY = 0;
public const uint WINHTTP_FLAG_SECURE = 0x00800000;
public static void Main()
{
string filePath = @"C:\Users\HP\Downloads\TestUpload.txt"; // Đường dẫn tới tệp bạn muốn upload
string serverUrl = "/upload"; // Đường dẫn URL upload trên server
string serverHost = "www.example.com"; // Tên miền hoặc địa chỉ IP của server
// Mở phiên làm việc HTTP
IntPtr hSession = WinHttpOpen("WinHTTP Example/1.0", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, IntPtr.Zero, IntPtr.Zero, 0);
if (hSession != IntPtr.Zero)
{
// Kết nối tới máy chủ
IntPtr hConnect = WinHttpConnect(hSession, serverHost, 80, 0);
if (hConnect != IntPtr.Zero)
{
// Mở yêu cầu POST
IntPtr hRequest = WinHttpOpenRequest(hConnect, "POST", serverUrl, null, null, null, 0);
if (hRequest != IntPtr.Zero)
{
// Đọc nội dung tệp từ local
byte[] fileBytes = File.ReadAllBytes(filePath);
uint fileSize = (uint)fileBytes.Length;
// Chuẩn bị dữ liệu để upload
IntPtr buffer = Marshal.AllocHGlobal(fileBytes.Length);
Marshal.Copy(fileBytes, 0, buffer, fileBytes.Length);
// Gửi yêu cầu với dữ liệu tệp
bool requestSent = WinHttpSendRequest(hRequest, "Content-Type: application/octet-stream\r\n", 0, IntPtr.Zero, 0, fileSize, IntPtr.Zero);
if (requestSent)
{
uint bytesWritten = 0;
bool dataWritten = WinHttpWriteData(hRequest, buffer, fileSize, out bytesWritten);
if (dataWritten && bytesWritten == fileSize)
{
Console.WriteLine("File đã được gửi thành công!");
// Nhận phản hồi từ máy chủ
if (WinHttpReceiveResponse(hRequest, IntPtr.Zero))
{
Console.WriteLine("Server đã nhận file!");
}
else
{
Console.WriteLine("Lỗi: Không nhận được phản hồi từ máy chủ.");
}
}
else
{
Console.WriteLine("Lỗi: Không thể gửi dữ liệu tệp.");
}
}
else
{
Console.WriteLine("Lỗi: Không thể gửi yêu cầu.");
}
// Giải phóng bộ nhớ
Marshal.FreeHGlobal(buffer);
WinHttpCloseHandle(hRequest);
}
WinHttpCloseHandle(hConnect);
}
WinHttpCloseHandle(hSession);
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79092472/win32-find-data-its-true[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия