带有边界获取错误的 HTTP POST

HTTP POST with boundary getting error

本文关键字:HTTP POST 取错误 获取 边界      更新时间:2023-10-16

我正在尝试使用Arduino板将图像发布到我的服务器。我发布的页面使用的是Ruby on Rails,我知道它的工作原理,因为我已经用Postman测试过了它。现在,我的Arduino代码在我开始添加边界之前做得很好。请指导。我尝试了多种不同的设置。我已经删除了上传文件的代码,因为我无法让下面的内容正常工作。

// send the header
sprintf(outBuf,"POST %s HTTP/1.1",page);
client.println(outBuf);
sprintf(outBuf,"Host: %s",domainBuffer);
client.println(outBuf);
client.println(F("Connection: closernContent-Type: multipart/form-data; boundary=----AbC123"));
sprintf(outBuf,"Content-Length: %urn",strlen(thisData));
client.println(outBuf);
// send the body (variables)
client.println(F("------AbC123"));
client.println(F("Content-Disposition: form-data; name="authenticate""));
client.println();
client.println(F("authenticate"));
client.println(F("------AbC123--"));

这是我从我的网页上得到的。我知道我的问题在于我的请求的结构。

 2018-03-21 01:56:23 +0000: Rack app error: #<EOFError: bad content body>
/usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.6.8/lib/rack/multipart/parser.rb:147:in `get_current_head_and_filename_and_content_type_and_name_and_body'
/usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.6.8/lib/rack/multipart/parser.rb:58:in `block in parse'

对于将来看到这个问题的任何人。我的问题是我错误地计算了正文的内容长度。内容长度是从开始边界到结束边界的所有内容的长度。一旦我修复了一切正常。感谢您的所有帮助。