2012-03-15 56 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和「後數據」裏你將不得不進行urlencode您的JSON並將其添加爲與其他形式的參數一起表格參數的形式參數:

例如

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; 

本質上,您需要從服務提供商那裏瞭解他們期望的格式。

相關問題