使用 MFC 的 CInternetSession 类进行 HTTP POST 请求 将图片上传到 http://169.254.1.10:8090/api/v1/~bali/ABC0123456789
时间: 2023-09-06 19:13:33 浏览: 247
以下是使用 MFC 的 CInternetSession 类进行 HTTP POST 请求将图片上传到指定地址的示例代码:
```
CInternetSession session;
CString strServerName = _T("169.254.1.10");
INTERNET_PORT nPort = 8090;
CString strObject = _T("/api/v1/~bali/ABC0123456789");
// Open HTTP connection
CHttpConnection* pConnection = session.GetHttpConnection(strServerName, nPort);
CHttpFile* pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, strObject);
// Set request headers
pFile->AddRequestHeaders(_T("Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"));
// Load image file
CString strFilePath = _T("path/to/image/file");
CFile file;
if (file.Open(strFilePath, CFile::modeRead))
{
DWORD dwFileSize = (DWORD)file.GetLength();
LPBYTE lpFileData = new BYTE[dwFileSize];
file.Read(lpFileData, dwFileSize);
// Construct request body
CString strBoundary = _T("----WebKitFormBoundary7MA4YWxkTrZu0gW");
CString strData;
strData.Format(_T("%s\r\nContent-Disposition: form-data; name=\"image\"; filename=\"%s\"\r\nContent-Type: image/jpeg\r\n\r\n"), strBoundary, strFilePath);
pFile->WriteString(strData);
pFile->Write(lpFileData, dwFileSize);
delete[] lpFileData;
lpFileData = nullptr;
CString strEndBoundary;
strEndBoundary.Format(_T("\r\n%s--\r\n"), strBoundary);
pFile->WriteString(strEndBoundary);
// Send request
pFile->EndRequest();
}
// Close connection
pFile->Close();
delete pFile;
pConnection->Close();
delete pConnection;
session.Close();
```
注意事项:
- 请将示例代码中的 IP 地址、端口号、请求路径、文件路径等参数替换为实际值。
- 请确保上传的文件存在,并且具有读取权限。
- 请确保上传的文件大小不超过服务器设定的最大大小限制。
阅读全文