そこで、コンテンツ タイプとして application/x-www-form-urlencoded を使用して HTTPWebRequest を送信しました。これは、応答が同様のタイプで返されることを意味すると思いますか? (編集:これは事実ではないと言われました)
私の質問はこれです。応答で返されるさまざまなキーと値のペアにアクセスするにはどうすればよいですか。これまでの私のコードは次のようになります。もちろん、文字列を読み取ることはできますが、文字列をバラバラにする以外に、データにアクセスするためのより良い方法があることは確かです。
HttpWebResponse response = SendPOSTRequest("https://site/page?Service=foo", content.ToString(), "", "", true);
string responseCode = response.StatusCode.ToString();
string responseStatusDescription = response.StatusDescription;
StreamReader sr = new StreamReader(response.GetResponseStream());
string result = sr.ReadToEnd();
XML/linq を使用して要素を XDocument に読み込もうとしましたが、もちろん XML 形式で返されません。
そこに 3 つまたは 4 つの異なる情報があると仮定すると、どうすればそれらを読み取ることができるでしょうか?
編集:チェックしたところ、データはテキスト/プレーンとして返されています。これはどのように簡単に処理できますか?
編集: ストリームリーダーを介して取得された応答文字列は次のとおりです。
VPSProtocol=2.23
Status=OK
StatusDetail=Server transaction registered successfully.
VPSTxId={FDC93F3D-FC64-400D-875F-0B7E855AD81F}
SecurityKey=*****
NextURL=https://foo.com/PaymentPage.asp?TransactionID={875F-0B7E855AD81F}
編集:このコードは途中で私をそこに連れて行ってくれるようです。応答をリストに分割して、1 行ずつアドレス指定することができます。それでも完璧な解決策ではありません。
StreamReader sr = new StreamReader(response.GetResponseStream());
List<string> str = new List<string>;
while (sr.Peek() >= 0)
{
str.Add(sr.ReadLine().ToString());
}