如何发送发布请求并将文件从Winhttp上传到Flask

时间:2018-07-11 11:50:51

标签: python post flask request winhttp

我正在用python-flask中的服务器开发Windows窗体应用程序(Visual C ++)。我需要从c ++向烧瓶发送http POST请求,并且为此使用了winHTTP。 我正在关注本文档 WinHTTP Send Request Function 如果我仅通过在url中进行串联传递参数,则能够接收请求参数。 例如http://127.0.0.1:5000/memo?foo=Hello 如果我在winHTTP中使用标头发送

    std::string dat = "foo=Hello";
    LPSTR  data = const_cast<char *>(dat.c_str());
    DWORD data_len = strlen(data);
    LPCWSTR additionalHeaders = L"Content-Type: application/x-www-form-urlencoded\r\n";
    DWORD headersLength = -1;
    BOOL result = WinHttpSendRequest(request_, additionalHeaders, headersLength, (LPVOID)data, data_len, data_len, 0))

我无法在烧瓶中使用它

foo = request.args.get('foo')

如果我从Flask-Python打印print(foo),它将打印“无”。 但是,如果我打印

if request.method == 'POST':                        
      print(request.headers)
      print(request.get_data())
      foo = request.args.get('foo')
      print(foo)

它打印

console print 这意味着这些值在数据中,我需要进行额外的解析才能访问该数据。现在,下一个主要问题是我需要上传图像,并且我正在遵循本文档Using Windows HTTP Services,但是我无法使用

在python中访问图像
file = request.files['image'])
filename = images.save(file)# saving image from flask_uploads

如何使用print(request.get_data())

打印

我想上传图片问题和使用其他标题发送http发布请求有关。但是,我无法区分问题出在winhttp还是flask。

0 个答案:

没有答案