VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 450|回复: 0

求助一个http上传文件的问题

[复制链接]
34_avatar_middle
最佳答案
0 
在线会员 发表于 2021-4-27 22:58:00 | 显示全部楼层 |阅读模式
我想给远程服务器上传文件,我用postman上传成功的。上传是也用fiddler抓包看了一下。附件中有详细的截图。

但是我想通过VC程序写,因为我是初学者,代码不知道怎么写,就照猫画虎的写,写的如下,本来想通过抓包工具fiddler抓包看看自己写的代码。但是fiddler里什么都抓取不到。这下不知道怎么搞了,请高手们指点迷津。小弟非常感谢!
        HANDLE hFile = CreateFile(L"D:\\0409105026-1-2.jpg", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
        if (hFile == INVALID_HANDLE_VALUE)
        {
                printf("open error\n");
                return;
        }
        DWORD filesize = GetFileSize(hFile, NULL);
        if (filesize == INVALID_FILE_SIZE)
        {
                printf("filesize error\n");
                return;
        }
        char *buff = (char *)malloc(filesize);
        memset(buff, 0, filesize);
        DWORD dwRead = 0;
        if (!ReadFile(hFile, buff, filesize, &dwRead, NULL))
        {
                printf("read error\n");
                return;
        }

        CoInitialize(NULL);

        IWinHttpRequestPtr pHttpReq = NULL;
        HRESULT hr = pHttpReq.CreateInstance(__uuidof(WinHttpRequest));
        if (FAILED(hr))
        {
                return;
        }

        hr = pHttpReq->Open(_T("POST"), _T("https://swhq.vhaoxun.com/api/vehicles/uswhq"));
        if (FAILED(hr))
        {
                return;
        }
        pHttpReq->SetRequestHeader(_T("Content-Type"), _T("multipart/form-data; boundary=--------------------------160208929958355896735465"));
        pHttpReq->SetRequestHeader(_T("Connection"), _T("keep-alive"));
    pHttpReq->SetRequestHeader(_T("Accept-Encoding"), _T("gzip, deflate, br"));
        pHttpReq->SetRequestHeader(_T("Content-Disposition"), _T("form-data; name=\"Token\" /r/n 9cf42470ba33c05492c7b00375ba474d"));
        pHttpReq->SetRequestHeader(_T("Content-Disposition"), _T("form-data; name=\"type\" /r/n img"));
        pHttpReq->SetRequestHeader(_T("Content-Disposition"), _T("form-data; name=\"id\" /r/n 2"));
        pHttpReq->SetRequestHeader(_T("Content-Disposition"), _T("form-data; name=\"file\"; filename=0409105026-1-2.jpg"));
        //pHttpReq->SetRequestHeader(_T("Content-Type"), _T("image/jpeg"));

        _variant_t varBlob = vtMissing;
        SAFEARRAY* psa = NULL;
        SAFEARRAYBOUND rgsabound[1];
        rgsabound[0].lLbound = 0;
        rgsabound[0].cElements = filesize;
        psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
        for (long i = 0; i < (long)filesize; i++)
        {
                SafeArrayPutElement(psa, &i, buff++);
        }       

        varBlob.vt = VT_ARRAY | VT_UI1;
        varBlob.parray = psa;

        hr = pHttpReq->Send(varBlob);
        if (FAILED(hr))
        {
                return;
        }
        _bstr_t bs = pHttpReq->ResponseText;
        CString strRe = bs;
        MessageBox(strRe);

file.rar

569.05 KB, 下载次数: 2

截图





上一篇:APlayer的SDK中的例子SimplePlayer编译错误
下一篇:关于vc处理高并发要如何来实现?
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-9-28 13:17

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表