2011-04-29 23 views
1

EDIT:私は過度に複雑な別のプロジェクトのコピーされたコードを使用していました...幸いにも週末は遠くないです。 *HttpWebRequest - 括弧はPOSTでは許可されていません

*

** **オリジナル質問** ** ** * ** ** *

私は」現在、内部使用のために外部のSMSゲートウェイAPIをラップしています。外部APIは、mu =がmyName &受信者[] = 4512345678 &受信者[] = 4587654321& ...

から//(smsgateway)/ユーザ名= fooの&パス=バー&:

ます。http:?ltiple受信者は、次の構文を使用しています

これはGETリクエストではうまく動作しますが、非常に大きなURLが生成された場合の問題を避けるために、ゲートウェイにPOSTします。 HTTP 1.1では、クライアントが非常に長いURLの要求をサーバーに送信することをクライアントに明示的に制限していません。

ここでの問題は、私は、私は、.NET 4には、HttpWebRequestを使用している場合、私は次のエラーを取得するブラケットを含むフォームパラメータ名を使用することはできませんよということです。

「を指定された値が無効なHTTPヘッダーの文字を持っています」私の質問は、フォームパラメータ名の無効な文字についてHTTP 1.1仕様で何も見つけることができませんでした。なぜ、フォームパラメータ名 'recipient' []を使用できないのですか?

答えて

2

どのようにPOSTリクエストを送信していますか? HTTPは、POST本体の "form parameters"を気にしません。なぜなら、それらはリクエスト本体で(適切なコンテンツエンコーディングで)送信されるからです。

+0

フォームコレクションに追加するときにエラーが発生します。webRequest.Headers.Add( "recipients []"、 "somevalue"); – kerbou

+0

これは、POST要求の動作方法ではありません。要求ヘッダーでは、フォームパラメータは送信されません。それらは要求の本文に送られます。 – hrnt

+0

ここで、すばやくGoogle検索で見つかったことは、postDataがどのように送信されているかに注目してください:http://www.netomatix.com/httppostdata.aspx – hrnt

関連する問題