2012-03-15 10 views
0

jsonの文字列とフォーム変数をurl(https://www.somedomain.com/checkout.jsp)に投稿する必要があります。HttpWebRequestを使用して、フォーム変数とjsonオブジェクトを同時に渡すことはできますか?

私のjsonには注文情報(ユーザーメール、配送先住所、請求先住所、クレジットカード番号など)が含まれます。 jsonの文字列に加えて、私は "bmForm = submit_order_service"のようなフォーム変数を渡す必要があります。

現在、私はこれをASP.Net MVC 3(C#)のHttpWebRequestオブジェクト経由で実行しようとしています。

ここではjson文字列を処理するコードを示します。だから、私の質問は、どのようにフォーム変数にも渡すようにこのコードを変更することです。

var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.somedomain.com/checkout/checkout.jsp"); 
httpWebRequest.ContentType = "text/json"; 
httpWebRequest.Method = "POST"; 
httpWebRequest.Accept = "*/*"; 
httpWebRequest.UserAgent = "SomeUserAgent"; 

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
{ 
    string json = sb.ToString(); 
    streamWriter.Write(json); 
} 

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 

using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
{ 
    var responseText = streamReader.ReadToEnd(); 
} 

それは私がHttpWebRequestのを使用して求めています何をすることはできません場合は、多分誰かが別のアプローチをお勧めすることができますか?

答えて

0

フォームデータをHTMLエンコードし、パラメータとしてURLに追加することができます(http://www.somedomain.com/checkout/checkout.jsp?param1=value1&param2=value2...)。基本的には、そのアクションがGETに設定されているかのようにフォームを扱います(もちろんPOST HTTP動詞を使用します)。

0

あなたはJSONと「ポストデータ」内のフォームパラメータの両方を持っているしたい場合は、あなたのJSONをURLENCODEおよびその他のフォームパラメータと一緒にフォームパラメータとして追加する必要があるとしている:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://mysite.com/index.php"); 
req.Method = "POST"; 
req.ContentType = "application/x-www-form-urlencoded"; 
string postData = "json=[yoururlencodedjson]&var2=value2&var3=value3" 
req.ContentLength = postData.Length; 

本質的に、サービスプロバイダーから期待される形式を見つける必要があります。

関連する問題