■■■

2016年4月3日日曜日

WebRequest でPOST送信を行いサーバー返答データを受信する方法

WebRequest でPOST送信を行う方法
VB.NET
Dim enc As System.Text.Encoding = _
    System.Text.Encoding.GetEncoding("shift_jis")

Dim postData As String = _
    "inlang=ja&word=" + _
        System.Web.HttpUtility.UrlEncode("NET", enc)
Dim postDataBytes As Byte() = _
    System.Text.Encoding.ASCII.GetBytes(postData)

Dim req As System.Net.WebRequest = _
    System.Net.WebRequest.Create("http://www.サーバー")
req.Method = "POST"
req.ContentType = "application/x-www-form-urlencoded"
req.ContentLength = postDataBytes.Length

Dim reqStream As System.IO.Stream = req.GetRequestStream()
reqStream.Write(postDataBytes, 0, postDataBytes.Length)
reqStream.Close()

Dim res As System.Net.WebResponse = req.GetResponse()
Dim resStream As System.IO.Stream = res.GetResponseStream()
Dim sr As New System.IO.StreamReader(resStream, enc)
Console.WriteLine(sr.ReadToEnd())

sr.Close()
C#
System.Text.Encoding enc =
    System.Text.Encoding.GetEncoding("shift_jis");

string postData =
    "inlang=ja&word=" +
        System.Web.HttpUtility.UrlEncode("NET", enc);
byte[] postDataBytes = System.Text.Encoding.ASCII.GetBytes(postData);

System.Net.WebRequest req =
    System.Net.WebRequest.Create("http://www.レスポンスサーバー");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postDataBytes.Length;

System.IO.Stream reqStream = req.GetRequestStream();
reqStream.Write(postDataBytes, 0, postDataBytes.Length);
reqStream.Close();

System.Net.WebResponse res = req.GetResponse();
System.IO.Stream resStream = res.GetResponseStream();
System.IO.StreamReader sr = new System.IO.StreamReader(resStream, enc);
Console.WriteLine(sr.ReadToEnd());
sr.Close();

■■■