[過去ログ] Go language part 3 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
508
(1): デフォルトの名無しさん [sage] 2020/05/16(土) 15:12:59 ID:F08ATzLT(1/4) AAS
>>502
502(1): デフォルトの名無しさん [sage] 2020/05/16(土) 13:02:51 ID:e+rgeli+(5/20) AAS
エラーが起こる第一原因判明
ヘッダにContent-Typeが無いリクエストでParseMultipartFormすると、パースを打ち切るのではなくてエラーを返す

ショボい作りだ
>ヘッダにContent-Typeが無いリクエストでParseMultipartFormすると、パースを打ち切るのではなくてエラーを返す

これは正常な処理だよ
Context-Typeが"multipart/form-data" の場合
Context-Type のmultipart/form-dataの後に続くboundaryをキーにしてmultipartをパースするんだから
ParseMultipartFormがContext-Typeからパースに必要なboundaryを取得できなくてエラーになるのはいたって正常なことだよ
509: デフォルトの名無しさん [sage] 2020/05/16(土) 15:26:41 ID:F08ATzLT(2/4) AAS
>>508の補足
Content-Typeが無かったらboundaryが取得できないのにParseMultipartFormでパースしようとするからエラーを返す
511
(1): デフォルトの名無しさん [sage] 2020/05/16(土) 15:43:30 ID:F08ATzLT(3/4) AAS
ヘッダーのContext-Typeで分岐して適切なParseなにがしを呼べってことです。
531
(1): デフォルトの名無しさん [sage] 2020/05/16(土) 19:47:58 ID:F08ATzLT(4/4) AAS
>>530
530(1): デフォルトの名無しさん [sage] 2020/05/16(土) 19:07:51 ID:e+rgeli+(18/20) AAS
意図的にContent-Typeのないような感じのフォームデータは許さないサーバを書いてるから、エラーチェックしないという対応だけでも問題なさそう
content-typeがない場合
Request.Bodyの内容からapplication/x-www-form-urlencodedやmultipart/form-dataなどのデータ形式(content-type相当)を判断する必要がる。

multipart/form-dataに限ってはboundaryをRequest.Body内容から見つけ出す必要がある。
(keyValueを取得するにもboundaryが必要。)

で、ここで問題なのがRequest.BodyはSTDINからの入力でseekが出来ないのでデータ形式判定後に再度Request.Bodyを読み込むために何らかの方法でRequest.Bodyをキャッシュする必要が出てくる。
(multipart/form-dataはファイルもアップロード出来るのでメモリ上でのキャッシュには向かない)

それとhttp.Serverは常駐プロセスになるので、無駄なリソースを使って自動判別して自動でパースするよりcontent-typeで分岐してパースする方が合理的。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.572s*