質問: 参考書のHttp Web Requestの使い方で分からない点がありました。 C#のWindows Form アプリの作成についてです。 詳しい方おりましたら、この違いについてご教示お願い致します。 このソースコードは翻訳サイトに文字をPOSTし英訳などするソースコードになります。 一枚目画像内のstring sendStringで始まるコードを見てください。 POST送信する際にHTMLエンコードした文字列をバイト型配列にせずにPOSTしています。 しかしどのWEBサイトを見てもPOSTする際はバイト型配列にしています。例えば下のようなサイトです。バイト型配列に変換することは必須ではないのでしょうか。 http://www.atmarkit.co.jp/ait/articles/0507/01/news133.html https://dobon.net/vb/dotnet/internet/webrequestpost.html ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/834cf50b59540e8cccdd8724b1ed8a6b.jpeg) ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/916998484171c67a0c0a31fac029ce42.jpeg)
回答: まず、提示されたURLの記事のほうですが、 HttpWebRequest.GetRequestStreamメソッド().aspx) こちらを使用して、それで得られたStreamクラス.aspx)を使用しています。 StreamクラスのWriteはByteもしくはByte[]しか受け付けません。 この為、サンプルではByte[]に変換しています。 そして書籍のほうですが、こちらはHttpWebRequest.GetRequestStreamメソッドから得られたStreamクラスを利用しStreamWriterクラス.aspx)を生成しています。 StreamWriterクラスのWriteはStringを受け付けますので、String型で渡しています。 両者で使用している物が違う為に生じている違いです。