1

POSTを使用してファイルをアップロードしようとしています

これが私のリクエストです:

POST /upload.php HTTP/1.1
Host: localhost
Content-Type: multipart/form-data; boundary=---------------------------552335022525
Content-Length: 192
-----------------------------552335022525
Content-Disposition: form-data; name="userfile"; filename="12.txt"
Content-Type: text/plain


blabla
-----------------------------552335022525--

HTTPライブヘッダーFirefoxプラグインを使用するとすべてが機能します

しかし、char * bufferを入れて、winsocksapiで送信すると、400BadRequestエラーが発生します。

4

1 に答える 1

1

ヘッダーとペイロードの間に空白行が必要です。

Content-Length: 192

-----------------------------552335022525

これはHTTPプロトコルの一部です。HTTPリクエストヘッダーは最初の空の行で終わります(CR-LF自体)。送信する内容は文字列になります。

-----------------------------552335022525

(次の2行とともに)要求ヘッダーとして取得されますが、もちろんそうではありません。サーバーはその先頭または末尾を作成できないため、400BadRequestで応答します。

また、content-lengthを送信することは、multipart / form-dataでは必要ありません。また、値を間違えると問題が発生する可能性があるため、良いアイデアでもありません。MIMEマルチパート形式は自己記述型です。

于 2013-01-02T03:51:52.083 に答える