2009-06-03 10 views
2

私は内蔵のユーティリティメソッド.NETで2つの一般的なコンテンツタイプのHTTP POSTメッセージボディを構築するためを探しています:.NETでPOSTリクエスト本体を構築する組込みメソッド?

  • アプリケーション/ x-www-form-urlencodedで
  • マルチパート/ form-data

私はそれほど難しいことではないが、私自身は自分のロールよりも、誰かの準備ができてテスト済みの実装を使用したいと思う。しかし、この効果はSystem.Webには何も存在しないようです。

提案がありますか?

単にUrlEncodeメソッドを使用し、application/x-www-form-urlencodedコンテンツタイプの

答えて

0

(手動でPOSTメッセージの本文を構築する方法を説明する必要はありませんが...それはこの質問が何であるかではありません)。 (C#で)

例:

string body = 
    "this=" + HttpUtility.UrlEncode(valueForThis) + 
    "&" + 
    "that=" + HttpUtility.UrlEncode(valueForThat) + 
    "&" + 
    "more=" + HttpUtility.UrlEncode(valueForMore); 
+0

感謝しますが、これは私が「手動」でどのような意味です。それ以外の方法がないなら、私はこれをします。 –

-2
Imports System.IO 
Imports System.Net 

Private Function PostWebPage(ByVal argUrl As String) As String 
    Dim objWebRequest As HttpWebRequest 
    Dim sPostData As New StringBuilder 
    Dim sr As StreamReader 
    Dim objWebResponse As HttpWebResponse 
    If argUrl.Length > 0 Then 
     Try 
      objWebRequest = CType(WebRequest.Create(argUrl), HttpWebRequest) 
      objWebRequest.UserAgent = "Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+.NET+CLR+1.1.4322;+.NET+CLR+1.0.3705)" 
      sPostData.Append("accountType=GOOGLE&Email=*******@gmail.com&Passwd=*******&service=analytics&source=Test") 
      objWebRequest.Method = "POST" 
      objWebRequest.ContentType = "application/x-www-form-urlencoded" 
      objWebRequest.ContentLength = sPostData.ToString.Length 
      Dim stOut As New StreamWriter(objWebRequest.GetRequestStream, System.Text.Encoding.ASCII) 
      stOut.Write(sPostData) 
      stOut.Close() 
      objWebRequest.AllowAutoRedirect = True 
      objWebRequest.Timeout = 10000 
      objWebRequest.KeepAlive = True 
      objWebResponse = CType(objWebRequest.GetResponse(), HttpWebResponse) 
      sr = New StreamReader(objWebResponse.GetResponseStream) 
      Return sr.ReadToEnd 
      Exit Function 
     Catch ex As Exception 
     End Try 
    End If 
    Return "" 
End Function 
+0

-1 - 申し訳ありませんが、問題はsPostDataを構築する方法でした。あなたの例では、指定された文字列です。 –

+0

試してみてください - http://weblogs.asp.net/mikedopp/archive/2008/02/04/paypal-payflow-pro-code.aspx – Mike

関連する問題