私は、転送割り当ての進化についてWebページをチェックするプロセスを自動化するサイドバーガジェットを開発しようとしています。私はほとんどそれに取り組んでいますが、それを機能させるために必要な最後のステップが1つあります。正しいPOSTデータを含むHttpRequestをphpページに送信します。Firefoxプラグインを使用して、ヘッダーのContent-Type」は次のようになります。
Content-Type=multipart/form-data; boundary=---------------------------99614912995
パラメータ「境界」はランダムに見えるようになっており、POSTDATAは次のとおりです。
POSTDATA =-----------------------------99614912995
Content-Disposition: form-data; name="SOMENAME"
Formulaire de Quota
-----------------------------99614912995
Content-Disposition: form-data; name="OTHERNAME"
SOMEDATA
-----------------------------99614912995--
ミステリー「境界」パラメーターが返されてPOSTDATAを正しくエミュレートする方法がわかりません。
誰かが私がこれを解決する方法を知っていますか?
境界パラメータは、ハイフンの数と最後にランダムな文字列を設定しますが、何でも設定できます。問題は、境界文字列が要求データに現れると、境界として扱われることです。
いくつかのヒント、およびmultipart/form-dataを送信するためのサンプル関数については、 この質問 への私の答えを参照してください。送信したい部分ごとにループを使用するようにその関数を変更することはそれほど難しくありません。
RFC 1341、セクション7.2.1 から引用するには、Content-Type
ヘッダーのboundary
パラメーターの関連ビットと考えられるもの(MIMEの場合):
「マルチパート」のすべてのサブタイプは、共通の構文を共有しています...
マルチパートエンティティのContent-Typeフィールドには、カプセル化境界を指定するために使用される1つのパラメーター "boundary"が必要です。カプセル化境界は、2つのハイフン文字(「-」、10進コード45)の後に、Content-Typeヘッダーフィールドの境界パラメーター値が続く行として定義されます。
そして、明確にします:
したがって、一般的なマルチパートContent-Typeヘッダーフィールドは次のようになります。
Content-Type: multipart/mixed; boundary=gc0p4Jq0M2Yt08jU534c0p
これは、エンティティがいくつかの部分で構成されており、それぞれがRFC 822メッセージと構文的に同一の構造を持っていることを示しています。ただし、ヘッダー領域は完全に空である場合があり、各部分の先頭には--gc0p4Jq0M2Yt08jU534c0pという行があります
注意事項:
少なくとも最後のではなく:
最後の身体部分に続くカプセル化境界は、それ以上身体部分が続かないことを示す顕著な区切り文字です。このような区切り記号は、行の最後にさらに2つのハイフンが追加されている点を除いて、前の区切り記号と同じです。
--gc0p4Jq0M2Yt08jU534c0p--
全体像を把握する前にしばらく歩き回らなければならなかったので、これが将来誰かに役立つことを願っています(必要なRFCを読んで理解を深めてください)。