Php c多部分表单数据从服务器返回错误请求

Php c多部分表单数据从服务器返回错误请求,php,c,forms,http-headers,multipartform-data,Php,C,Forms,Http Headers,Multipartform Data,我刚刚创建了stackoverflow帐户,因为我在使用C应用程序发送多部分/表单数据时遇到了严重问题。有许多图书馆我可以用来发送,但出于教育目的,我是从零开始做的,所以请容忍我 问题是,当我使用我的应用程序发送请求时,服务器恰好返回了400个错误请求。我看到了这个类似的问题,但我无法解决这个问题。下面是我的请求和服务器返回内容的屏幕截图 注意:不知何故,标记中返回了“testval”,但我需要消除错误。我意识到这是一个广泛的问题,但我只需要缩小发送多部分/表单数据的范围。 char *sen

我刚刚创建了stackoverflow帐户,因为我在使用C应用程序发送多部分/表单数据时遇到了严重问题。有许多图书馆我可以用来发送,但出于教育目的,我是从零开始做的,所以请容忍我

问题是,当我使用我的应用程序发送请求时,服务器恰好返回了
400个错误请求
。我看到了这个类似的问题,但我无法解决这个问题。下面是我的请求和服务器返回内容的屏幕截图

注意:不知何故,
标记中返回了“testval”,但我需要消除错误。我意识到这是一个广泛的问题,但我只需要缩小发送多部分/表单数据的范围。

char *sendbuf="POST http://localhost/france/test.php HTTP/1.1\r\n"
                        "Host: localhost\r\n"
                        "Content-Length: 238\r\n"   // content-length >=238
                        "Content-Type: multipart/form-data; boundary=----12345\r\n\r\n"
                        "------12345\r\n"
                        "Content-Disposition: form-data; name=\"name\"\r\n\r\n"
                        "This is the first string\r\n"
                        "------12345\r\n"
                        "Content-Disposition: form-data; name=\"hell\"\r\n\r\n"
                        "this is another string\r\n"
                        "------12345\r\n";

注2:我也知道我可以使用
application/x-www-form-urlencoded
,我已经使用过它,它可以工作,但由于我将进行更复杂的文件上传,我需要使用
多部分表单/数据
,我正在尝试先使用简单的纯文本来降低复杂性

我终于学会了如何使用多部分/post数据发布简单数据。我使用fiddler查看了数据是如何传递的。内容长度恰好是238,我还没有尝试使用其他数据,但将内容长度设置为238或更大似乎总是可行的。这就是现在的代码

重要提示:发送数据时,内容长度似乎很重要,
-
的数量在边界之后更多。如果边界有k个破折号,则以下破折号似乎总是k+2

char *sendbuf="POST http://localhost/france/test.php HTTP/1.1\r\n"
                        "Host: localhost\r\n"
                        "Content-Length: 238\r\n"   // content-length >=238
                        "Content-Type: multipart/form-data; boundary=----12345\r\n\r\n"
                        "------12345\r\n"
                        "Content-Disposition: form-data; name=\"name\"\r\n\r\n"
                        "This is the first string\r\n"
                        "------12345\r\n"
                        "Content-Disposition: form-data; name=\"hell\"\r\n\r\n"
                        "this is another string\r\n"
                        "------12345\r\n";