VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 786|回复: 1

请教一个用HTTP提交图片的问题。

[复制链接]
34_avatar_middle
最佳答案
0 
在线会员 发表于 2021-4-30 11:22:56 | 显示全部楼层 |阅读模式
大家好,有一个问题困扰我很久了,一直得不到解决,有了解这方面的帮助一下小弟。
我的问题是,我想给你一个网络地址提交图片,我用Postman可以成功提交,入图

然后我用fiddler可以抓包,抓包的结果如图

现在我用VC编码的方式想实现它,我的代码如下:我是按fiddler的抓包的截图写的文件头,文件体。但是我一提交,返回的结果是错误的,postman返回的结果是成功的。
让我不知道怎么解决的是:第一,我代码也不知道哪里写的不对,第二,我用vc代码写的程序的方式运行,fiddler竟然抓不到包。如果能抓的包,我还能对对自己是哪里的构造的提交内容不对。
void CCarInfoSendDlg::OnBnClickedButtonImg()
{
        CoInitialize(NULL);

        CString strBoundary(_T("--------------------------815792364980747702945512"));
        CString strBody;
        strBody += strBoundary;
        strBody += _T("\r\nContent-Disposition: form-data; name=\"Token\"\r\n\r\n");
        strBody += _T("9cf42470ba33c05492c7b00375ba474d");
        strBody += _T("\r\n");
        strBody += strBoundary;
        strBody += _T("\r\nContent-Disposition: form-data; name=\"type\"\r\n");
        strBody += _T("\r\nimg\r\n");
        strBody += strBoundary;
        strBody += _T("\r\nContent-Disposition: form-data; name=\"id\"\r\n");
        strBody += _T("\r\n2\r\n");
        strBody += strBoundary;
        strBody += _T("\r\nContent-Disposition: form-data; name=\"name\"\r\n");
        strBody += _T("\r\nimg_headstock\r\n");
        strBody += strBoundary;
        strBody += _T("\r\nContent-Disposition: form-data; name=\"file\"; filename=\"0409105026-1-2.jpg\"\r\n");
        strBody += _T("Content-Type: image/jpeg\r\n\r\n");

        CFile mFile;
        BOOL bRet = mFile.Open(L"D:\\0409105026-1-2.jpg", CFile::modeRead);
        if (!bRet) return;
        UINT nFileLen = (UINT)mFile.GetLength();

        UINT nRealLen = strBody.GetLength() + nFileLen;
        UINT mallocLen = strBody.GetLength() + nFileLen + 20;
        char *pBuffer = new char[mallocLen];
        ZeroMemory(pBuffer, mallocLen);
        char *delBuffer = pBuffer;

        USES_CONVERSION;
        char *pBody = T2A(strBody);
        memcpy(pBuffer, pBody, strBody.GetLength());

        mFile.Read(pBuffer + strBody.GetLength(), nFileLen);
        mFile.Close();

        SAFEARRAY* psa = NULL;
        SAFEARRAYBOUND rgsabound[1];
        rgsabound[0].lLbound = 0;
        rgsabound[0].cElements = nRealLen;
        psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
        for (long i = 0; i < nRealLen; i++)
                SafeArrayPutElement(psa, &i, pBuffer++);

        VARIANT varBLOB;
        varBLOB.vt = VT_ARRAY | VT_UI1;
        varBLOB.parray = psa;       

        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("User-Agent"), _T("PostmanRuntime/7.28.0"));
        pHttpReq->SetRequestHeader(_T("Accept"), _T("*/*"));
    pHttpReq->SetRequestHeader(_T("Postman-Token"), _T("6e4d7530-2da4-4516-b94b-fcceaae33087"));
        pHttpReq->SetRequestHeader(_T("Host"), _T("swhq.vhaoxun.com"));
        pHttpReq->SetRequestHeader(_T("Accept-Encoding"), _T("gzip,deflate,br"));
        pHttpReq->SetRequestHeader(_T("Connection"), _T("keep-alive"));
        pHttpReq->SetRequestHeader(_T("Content-Type"), _T("multipart/form-data;boundary=--------------------------815792364980747702945512"));
        pHttpReq->SetRequestHeader(_T("Content-Length"), _T("922952"));

        hr = pHttpReq->Send(varBLOB);
        if (FAILED(hr))
        {
                return;
        }
        delete[] delBuffer;

        _bstr_t bs = pHttpReq->ResponseText;
        CString strRe = bs;
        MessageBox(strRe);
}
Postman01.png
fiddler01.png
fiddler02.png
fiddler02_2.png




上一篇:MFC的一个小问题。
下一篇:MFC和Excel之间的读取问题
34_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-4-30 11:35:49 | 显示全部楼层
我fiddler抓包的内容如下:图片的数据我省略了一部分
POST https://swhq.vhaoxun.com/api/vehicles/uswhq HTTP/1.1
User-Agent: PostmanRuntime/7.28.0
Accept: */*
Postman-Token: 6e4d7530-2da4-4516-b94b-fcceaae33087
Host: swhq.vhaoxun.com
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------------------------815792364980747702945512
Content-Length: 922952

----------------------------815792364980747702945512
Content-Disposition: form-data; name="Token"

9cf42470ba33c05492c7b00375ba474d
----------------------------815792364980747702945512
Content-Disposition: form-data; name="type"

img
----------------------------815792364980747702945512
Content-Disposition: form-data; name="id"

2
----------------------------815792364980747702945512
Content-Disposition: form-data; name="name"

img_headstock
----------------------------815792364980747702945512
Content-Disposition: form-data; name="file"; filename="0409105026-1-2.jpg"
Content-Type: image/jpeg

    ~Exif  II*          >        ^   2    ~   i         X  IPCamera                        IPCamera                        2021-04-09 11:00:34                                6                $   
    S                          $         8      <  @B Gain:5 (r:54,g:36,b:83) 2021-04-09 11:00:34 gain: 5 filter: 0                    v      v         JFIF            (B+(%%(Q:=0B`Ued_U][jx  jq s[]         g  &#634; ǚ   (#(N++N n]n                                                  (#(N++N n]n                                                       "                      

   } !1AQa "q2   #B  R  $3br        
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz                                                                                        

   w !1AQ aq"2 B            #3R br
$4 % &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz                                                                                   ?   " F '&#1434;    wF&#1638;H($g  N?w' h^!ZC  t    aJp A彺 T` KM }0 is GZ  :攐          "
;< G\S b  &#1411;A  Cu     O     ~ 4 )s  i29   v $R         Jk0" _  p   &#1786; &#1702;>) N '  7 .x u&
       ><&#4992;Rw& aN,} '   j@9    zS1 ~  B9  <&        &#1181;  J  E,;  sL   R p > 2 ZFa Q&#7418; q @>~H GS )   ( )      ( H H   s  {S f  oC@8 HzP  M
 )   J1 4  &#1192;  psH          M  q : {   sM  `  ?.?2JsCt  5    J h
  i  C7  ¥ d &#509;         

。。。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

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

关闭

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

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

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

Powered by CcTry.CoM

© 2009-2021 cctry.com

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