繁体   English   中英

发送帖子数据,例如curl

[英]Send post data like curl

我使用此curl命令将文件推送到Web服务器

curl -i -X POST -H 'Content-Type: application/json' -d @./mylocalfile -k https://192.168.1.10:8283/here

我想使用一个简单的网页代替我可以在其中选择mylocalfile的文件

<html>
<body>
    <input class="file" type="file" id="fafafa" name="fileupload" /><br/>
    <br/>
    <input type="button" value="Submit" onclick="xhrSubmit();" />
    <script type="text/javascript ">
        function xhrSubmit() {
            var file_obj = document.getElementById('fafafa').files[0];
            var fd = new FormData();
            fd.append('fafafa', file_obj);
            xhr = new XMLHttpRequest();
            xhr.open('POST', 'https://192.168.1.10:8283/here', true)
            xhr.setRequestHeader('Content-type', 'application/json');
            xhr.send(fd);
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4) {
                    var obj = JSON.parse(xhr.responseText);
                    console.log(obj);
                }
            };
        }
    </script>
</body>
</html>

但是,当我使用Web服务器的网页时,得到的响应是预期的对象或数组。

如何更改javascript代码以发送数据,例如curl命令,该文件将文件发布到网络服务器没有问题?

我服务器端的完整Boost异常是

Exception <unspecified file>(1): expected object or array

您的内容类型错误。 您没有将JSON发送到服务器。

尝试将content-type设置为application / x-www-form-urlencoded

我想说的是,检查一下curl版本收到的内容。 不能是application / json和文件数据。 您需要multipart / form-data。

最终,问题在于json有效负载消息和curl中没有很多换行符,但浏览器却在意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM